【问题标题】:Blade engine: print triple curly braces刀片引擎:打印三重花括号
【发布时间】:2015-06-19 17:54:15
【问题描述】:

我知道如何在 Laravel 中打印双花括号:@{{ }}。

但是如何打印三重花括号?之前加@的第一个想法是行不通的,Laravel 还是尝试去解释一下。

有没有不将大括号编码为 HTML 实体的简单方法?

【问题讨论】:

  • 您能否提供一个示例来说明您正在尝试实现的目标(尤其是您当前的代码 sn-p 以及预期与实际输出)?
  • 我想在视图中打印三个大括号。想要的输出:{{{text}}} 无效代码:@{{{text}}}
  • 这已在框架中修复。有关更多信息,请参阅下面的答案。

标签: laravel blade


【解决方案1】:

这是最简单的方法。使用 HTML 实体来转义花括号。在 Laravel 5 中测试。 有关 HTML 实体的列表,请参见此处。 HTML Entities

代码

{{{text}}}

输出

{{{text}}}

【讨论】:

  • 我将只使用{{{text}}} 而不使用大括号。对我来说似乎是最简单的解决方案。谢谢!
  • 这对我不起作用,它只是在字符被转义时输出......
  • 需要使用{!! '{{{' . 'text'. '}}}' !!}
【解决方案2】:

另一种方法如下

{@{{Text}}}

【讨论】:

    【解决方案3】:

    我在 laravel 4.2 中尝试使用 Vue.js 渲染一些原始 HTML 时遇到了同样的问题。对我来说,最简单的解决方案是在刀片模板中使用简单的 php echo 语句:

    <?php echo '{{{ text }}}'; ?>
    

    为我做了诀窍。

    【讨论】:

    • 此外,如果 php 渲染引擎仍然在 echo 中提取它们(就像我们昨天所做的那样),您可以将其分解: 将 {{{ text }}} 传递给您的 JavaScript
    【解决方案4】:

    更新

    最近,一个pull request 被合并来解决这个问题!!
    从 Laravel 5.1.7 开始,可以按预期使用 @ 符号:

    @{{{ ... }}}
    

    原答案

    到目前为止,我发现的最不难看的解决方法是正常转义前两个括号,并在它们和第三个括号之间添加一个不可见的:

    @{{&zwnj;{test}}}
    

    如果我发现更好的东西,我会进一步调查并更新这个答案......

    【讨论】:

      【解决方案5】:

      如果您只想打印它们,请使用它:

      {{ '{{{' }}
      

      【讨论】:

      • 感谢您的超快回答。但这不能正常工作:{{ '{{{text}}}' }}。什么都没有打印出来。
      • 可能有点奇怪,但这有效:{{ '{{{text' . '}' 。 '}' 。 '}' }}
      猜你喜欢
      • 2018-09-22
      • 2015-04-14
      • 1970-01-01
      • 2017-02-13
      • 2019-10-29
      • 1970-01-01
      • 2019-07-24
      • 2018-04-19
      • 2015-01-11
      相关资源
      最近更新 更多