laravel视图中的e()方法是什么?

时间:2015-10-12 07:09:33

标签: php laravel laravel-5

我正在通过laravel挖掘,我了解了刀片视图的解释方式以及我遇到的是:

此:

{{ $tenant->name }}

转换为:

<?php echo e($tenant->name); ?>

我不明白e()方法的用途是什么?我也无法在php.net上找到它,所以我猜它是laravel 5本身的一部分。但是它做了什么?

2 个答案:

答案 0 :(得分:18)

来自文档:

E()

e函数在给定字符串上运行htmlentities:

echo e('<html>foo</html>');

// &lt;html&gt;foo&lt;/html&gt;

http://laravel.com/docs/5.1/helpers#method-e

答案 1 :(得分:1)

说你打算在网页上打印数据库中的一些数据,或者作为输入输入数据库,

{{ $tenant->name }}

并认为$tenant->name的价值类似于

<script>
    alert("Errors....");
</script>

在浏览器中呈现此内容后,您将获得alert。这是一个安全问题,因此我们需要避免呈现这些内容,并且我们不需要在数据库中使用这些类型的数据。

所以我们需要清理那些数据

做那个laravel提供了一些选择

HTML::entities($tenant->name);

e()是辅助函数HTML::entities

您可以使用

获得相同的行为

e($tenant->name);

如果$tenant->name<script>alert("Errors....");</script>,则在申请e()后,您将获得以下内容,

"&lt;script&gt; alert(&quot;Errors....&quot;); &lt;/script&gt;"

这不再是脚本处理

这是一个很好的recipe

有一种简单的方法可以做到这一点

使用三重花括号{{{ }}}而不是双花括号{{ }}这也会消毒内容。