【问题标题】:Weird Laravel Blade rendering with @ escape character带有@转义字符的奇怪 Laravel Blade 渲染
【发布时间】:2023-03-13 14:40:01
【问题描述】:

我正在使用@ 转义字符,以便 Blade 允许我编写一些 JS 模板。但我最终遇到了一些意想不到的行为。

@{{ a }} Outputs: {{ a }} 
@{{ {{ a }} }} Outputs: {{ {{ a }} }}
@{{ {{ a }} {{ b }} }} undefined constant b
@{{ @{{ a }} @{{ b }} }} Outputs: {{ @{{ a }} {{ b }} }}
@{{ {{ a }} @{{ b }} }} Outputs: {{ {{ a }} {{ b }} }}

顺便说一句,我希望 Laravel Blade 中有某种指令,这样我们就可以在其中放入任何类型的文本并确保它在输出中完好无损?

@intact

do {{ what }} ever you want!
@if we were not in @intact block,
there would be plenty of exceptions... {{{

@endintact

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

    如果您不希望您的数据被转义,您可以使用以下语法:

    Hello, {!! $name !!}.
    

    在回显您的用户提供的内容时要非常小心 应用。始终使用转义的双花括号语法 在显示用户提供的数据时防止 XSS 攻击。

    如果您在模板的大部分中显示 JavaScript 变量,您可以将 HTML 包装在 @verbatim 指令中:

    @verbatim
        <div class="container">
            Hello, {{ name }}.
        </div>
    @endverbatim
    

    有关详细信息,请参阅 blade docs 上的“显示未转义的数据”和“@verbatim 指令”部分。

    【讨论】:

    • 谢谢哈菲兹简戈尔
    猜你喜欢
    • 2015-06-27
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2013-08-29
    • 1970-01-01
    相关资源
    最近更新 更多