在Laravel Blade模板文件中,{{ }}和{!! !!}有什么区别?

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

128

非常印象深刻的解决方案和示例,谢谢Narendrasingh Sisodia :) - Kamlesh

15
如果不想对数据进行转义,请使用{!! !!},否则使用{{ }}

9
为了避免数据被攻击,请使用以下方法:
{{ $data }}

如果您不想让数据被转义,请使用以下内容。
{!! $data !!}

7

来自文档:https://laravel.com/docs/5.1/blade

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

Hello, {!! $name !!}.

3

0
在Laravel中,{{ }}应该将数据作为纯文本传递,并进行HTML转义,而{!! !!}则将数据作为内容传递,不进行任何HTML转义。
例如:我有一个变量$status = '<b>Active Status</b>';,它存储了HTML内容作为数据。
现在,如果我将这个数据写成{{ $status }},那么它将作为纯文本返回。
期望的输出是:
<b>Active Status</b>

但是如果我将这个数据写成{!! $status !!},那么它将会返回HTML代码。
预期输出是:
 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接