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

时间:2016-01-27 07:16:51

标签: php laravel laravel-5.2 laravel-blade

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

5 个答案:

答案 0 :(得分:69)

  

Blade {{ }} statements are automatically sent through PHP's htmlentities function to prevent XSS attacks.

如果您将数据从Controller传递到具有某些HTML样式的视图,如:

$first = "<b>Narendra Sisodia</b>";

在Blade中使用{{ $first }}访问它,然后输出结果为:

<b>Narendra Sisodia</b>

但如果使用{!! $first !!}访问它,那么输出将是:

Narendra Sisodia

答案 1 :(得分:8)

如果您不希望转义数据,请使用{!! !!},否则请使用{{ }}

答案 2 :(得分:6)

来自文档的

https://laravel.com/docs/5.1/blade

默认情况下,Blade {{ }}语句会自动通过PHP的htmlentities函数发送,以防止XSS攻击。如果您不希望转义数据,可以使用以下语法:

Hello, {!! $name !!}.

答案 3 :(得分:4)

要逃避数据使用

{{ $data }}

如果您不想转发数据,请使用

{!! $data !!}

答案 4 :(得分:2)

刀片{{}}语句通过PHP的htmlentities函数自动发送,以防止XSS攻击。

您可以在此处查看更多内容:https://laravel.com/docs/master/blade