【问题标题】:What is the difference between {{ }} and {{{ }}} in laravel blade files?laravel 刀片文件中的 {{ }} 和 {{{ }}} 有什么区别?
【发布时间】:2020-12-16 16:20:44
【问题描述】:

在 laravel 框架中,我们可以使用刀片在 html 文件中添加 PHP 代码。 我们在 Laravel 的刀片文件中同时使用了 {{ }} and {{{ }}} 语法。 它们有什么区别?

我在刀片文件中有这样的代码

{{{ $errors->has('slider') ? 'has-error' : '' }}}

【问题讨论】:

    标签: laravel


    【解决方案1】:

    在 Laravel 5 之前:

    • {{{ $var }}} 转义 $var 的内容
    • {{ $var }} 回显 $var 未转义

    从 Laravel 5 开始:

    • {{ $var }} AND {{{ $var }}} 转义 $var 的内容
    • {!! $var !!} 回显 $var 未转义

    【讨论】:

      【解决方案2】:

      {{ }}{{{ }}} 在 Laravel 5 中完全没有区别。

      在第 4 版中,它包括以下两种样式:“{{”和“{{{”。双 大括号是原始回声,三重大括号已转义。

      目前在 5.0 中,双大括号和三重大括号都避开了 变量和一个新的“{!! $var !!}” 是原始的。

      https://laravel-news.com/2014/09/laravel-5-0-blade-changes/

      【讨论】:

        【解决方案3】:

        {{{ 呈现 HTML 数据,但 {{ 显示数据和元素而不呈现。

        例如:

        $str = "<h3>tuytoosh is here</h3>";

        {{ $str }} 输出:<h3>tuytoosh is here</h3>

        {{{ $str }}} 输出:

        tuytoosh 来了

        【讨论】:

          【解决方案4】:

          Laravel 4 中,{{{ $var }}} 用于通过转义 HTML 实体来呈现数据,该实体使用 PHP htmlentities 函数来防止 XSS 攻击。

          {{ $var }} 用于呈现数据而不转义 HTML 实体。

          Laravel 5 中稍有不同,您可以使用 {{ $var }}{{{ $var }}} 转义数据并呈现未转义的数据,您可以使用 {!! $var !!}

          【讨论】:

            【解决方案5】:

            这里没有提到但很容易知道的东西。如果您有一个翻译文本,其参数应该成为生成的 html 中的 Vue 变量,那么三重花括号就派上用场了。

            例如:

            {{{ __('This window will close in :timeout seconds', ['timeout' => '@{{timeoutSecs}}']) }}}
            

            尝试使用任何其他大括号组合都会引发一些错误。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-05-12
              • 1970-01-01
              • 2022-01-10
              • 2021-05-20
              • 2015-06-26
              • 2021-09-23
              • 2016-10-01
              相关资源
              最近更新 更多