laravel刀片文件中{{}}和{{{}}}之间有什么区别?

时间:2016-05-30 06:56:34

标签: laravel

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

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

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

5 个答案:

答案 0 :(得分:5)

在Laravel 5之前:

  • {{{ $var }}}转义$ var
  • 的内容
  • {{ $var }}回应$ var unescaped

自Laravel 5开始:

  • {!! $var !!}回应$ var unescaped
  • {{ $var }}转义$ var
  • 的内容

答案 1 :(得分:5)

Laravel 5中的{{ }}{{{ }}}之间没有区别。

  

在版本4中,它包括以下两种样式:“{{”和“{{{”。双   花括号是原始回声,三重花括号逃脱。

     

目前在5.0中,双花冠和三花括号都逃脱了   变量和新的“{!! $ var !!}“是原始的。

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

答案 2 :(得分:3)

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

前:

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

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

{{{ $str }}}输出:

tuytoosh在这里

答案 3 :(得分:2)

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

{{ $var }}用于在不转义HTML实体的情况下呈现数据。

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

答案 4 :(得分:0)

这里没有提到我所提到的东西,但是这很容易知道。如果您的翻译文本带有应在结果html中成为Vue变量的参数,则三重花括​​号会派上用场。

例如:

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

尝试使用花括号的任何其他组合进行此操作都会引发一些错误。