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

tkqqtvp1  于 2023-01-10  发布在  其他
关注(0)|答案(5)|浏览(149)

在laravel框架中我们可以使用blade在html文件中添加PHP代码。我们在Laravel的blade文件中使用了两种{{ }} and {{{ }}}语法。它们之间有什么区别?
我有一个代码在刀片文件像这样

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

gz5pxeao1#

在Laravel 5之前:

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

自Laravel 5:

  • {{ $var }}{{{ $var }}}对$var的内容进行转义
  • {!! $var !!}回显$var未转义
bzzcjhmw

bzzcjhmw2#

Laravel 5中的{{ }}{{{ }}}完全没有区别。
在版本4中,它包括以下两种样式:“{{”和“{{{"。双花括号是原始回显,三花括号转义。
目前在Python 5.0中,双花括号和三花括号都对变量进行了转义,并且一个新的“{!!$var!!}”表示raw。
https://laravel-news.com/2014/09/laravel-5-0-blade-changes/

ejk8hzay

ejk8hzay3#

{{{呈现HTML数据,但{{显示数据和元素而不呈现。
例如:
$str = "<h3>Hello world!</h3>";
{{ $str }}输出:<h3>Hello world!</h3>
{{{ $str }}}输出:
你好,世界!

jslywgbw

jslywgbw4#

Laravel 4中,{{{ $var }}}用于通过转义HTML实体来呈现数据,HTML实体使用PHP htmlentities函数来防止XSS攻击。
{{ $var }}用于呈现数据而不转义HTML实体。
Laravel 5中略有不同,您可以使用{{ $var }}{{{ $var }}}对数据进行转义,并可以使用{!! $var !!}渲染未转义的数据。

tez616oj

tez616oj5#

一些我没有看到在这里提到的东西,但它可以很方便地知道。如果你有一个翻译文本的参数,应该成为一个Vue变量在结果的html然后三个大括号派上用场。
例如:

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

尝试使用任何其他的花括号组合都会抛出一些错误。

相关问题