Laravel 5 Form::model(...) 默认转义?
Laravel 5 Form::model(...) escaped by default?
也许这是我遗漏的一个简单的事情,但在我的 laravel blade 模板中我有类似的东西:
{{ Form::model(....) }}
... my fields ...
{{ Form::close() }}
这会导致转义 HTML,因此表单标签实际上会打印到屏幕上。但是,如果我这样做:
{!! Form::model(....) !!}
... my fields ...
{!! Form::close() !!}
它按预期工作。输出html时是否总是需要使用{!! ... !!}
?我读过的所有教程都只展示了使用 {{ Form::model(...) }}
的常规约定打开表单。感谢您的任何建议!使用 Laravel 5 fwiw.
以前是{{ text }}
不转义,{{{ text }}}
转义,后来改成了Laravel 5。现在,转义为 {{ text }}
,未转义为 {!! text !!}
。所以是的,对于 Laravel 5.
中的 HTML,您总是需要后者
很可能,您阅读的所有教程都使用旧版本。我将是第一个承认这可能有点令人困惑的人。我自己还没有完全习惯。 :)
供参考:
http://laravel.com/docs/5.0/templates - Laravel 5
http://laravel.com/docs/4.2/templates - Laravel 4
没错。
Laravel 4
{{ ... }}
原始 html
{{{ ... }}}
用 htmlentities()
转义
Laravel 5
{!! ... !!}
原始 html
{{{ ... }}}
用于明确转义的内容
{{ ... }}
默认行为(也被转义)
如果您不喜欢它,您可以使用以下方法更改所有 3 个标签:
Blade::setRawTags($openTag, $closeTag);
Blade::setContentTags($openTag, $closeTag);
Blade::setEscapedContentTags($openTag, $closeTag);
要恢复 Laravel 4 处理事情的方式,您可以这样做:
Blade::setRawTags('{{', '}}');
Blade::setEscapedContentTags('{{{', '}}}');
Laravel4.x:
{{{ text }}}
:内容标签,
@{{ text }}
:原始标签,
{{ text }}
: 转义 tags/Default.
Laravel5.x:
{{ text }}
:内容标签,
@{{ text }}
:原始标签,
{!! text !!}
:转义标签。
Blade 太神奇了!
也许这是我遗漏的一个简单的事情,但在我的 laravel blade 模板中我有类似的东西:
{{ Form::model(....) }}
... my fields ...
{{ Form::close() }}
这会导致转义 HTML,因此表单标签实际上会打印到屏幕上。但是,如果我这样做:
{!! Form::model(....) !!}
... my fields ...
{!! Form::close() !!}
它按预期工作。输出html时是否总是需要使用{!! ... !!}
?我读过的所有教程都只展示了使用 {{ Form::model(...) }}
的常规约定打开表单。感谢您的任何建议!使用 Laravel 5 fwiw.
以前是{{ text }}
不转义,{{{ text }}}
转义,后来改成了Laravel 5。现在,转义为 {{ text }}
,未转义为 {!! text !!}
。所以是的,对于 Laravel 5.
很可能,您阅读的所有教程都使用旧版本。我将是第一个承认这可能有点令人困惑的人。我自己还没有完全习惯。 :)
供参考: http://laravel.com/docs/5.0/templates - Laravel 5 http://laravel.com/docs/4.2/templates - Laravel 4
没错。
Laravel 4
{{ ... }}
原始 html
{{{ ... }}}
用 htmlentities()
Laravel 5
{!! ... !!}
原始 html
{{{ ... }}}
用于明确转义的内容
{{ ... }}
默认行为(也被转义)
如果您不喜欢它,您可以使用以下方法更改所有 3 个标签:
Blade::setRawTags($openTag, $closeTag);
Blade::setContentTags($openTag, $closeTag);
Blade::setEscapedContentTags($openTag, $closeTag);
要恢复 Laravel 4 处理事情的方式,您可以这样做:
Blade::setRawTags('{{', '}}');
Blade::setEscapedContentTags('{{{', '}}}');
Laravel4.x:
{{{ text }}}
:内容标签,
@{{ text }}
:原始标签,
{{ text }}
: 转义 tags/Default.
Laravel5.x:
{{ text }}
:内容标签,
@{{ text }}
:原始标签,
{!! text !!}
:转义标签。
Blade 太神奇了!