【发布时间】:2015-04-14 18:00:00
【问题描述】:
抱歉,这很可能是我自己的误解,而不是实际问题。我对 Laravel 和 Blade 模板还很陌生,我正在尝试输出一些取自 Input::get 的字段。但是,当我通过双花括号和三花括号输出字段时,输出之间似乎没有区别。
这是我观点的摘录:
@ $data = Input::only('name', 'date');
{{ "Unfiltered input: ".$data['name'] }}
<br />
{{{ "Filtered input: ".$data['name'] }}}
但是,当我提供带有特殊字符或代码的输入并查看呈现页面的源时,我看到为两者呈现的相同的、未过滤的输入。
根据Laravel documentation,我想在输出到视图时严格使用{{{ }}},但我认为它实际上并没有被“转义或净化”。我还没开始设置Validation,我认为这是安全和卫生的主要冲击,对吗?但是现在只关注这个,我是否误解了三重花括号应该做什么?还是他们在幕后工作而我只是没有看到最终结果?在输出这样的用户输入时,我还应该做些什么(除了设置验证层)吗?
【问题讨论】:
-
您是对的,在您将数据放入数据库之前,所有的清洁工作都会发生。为了让您看到差异,请将 HTML 放入获取数据中,您将看到输出中的差异。
{{ }}将解析 HTML,{{{ }}}将转义它,这意味着您将获得它的字符串版本。 -
啊。我知道了。这样就搞清楚了。非常感谢。