问题描述
也许这是我遗漏的一件简单的事情,但在我的 laravel 刀片模板中,我有类似的东西:
Maybe this is a simple thing that I'm missing, but in my laravel blade template I have something like:
{{ Form::model(....) }}
... my fields ...
{{ Form::close() }}
这会产生转义的 HTML,因此表单标签实际上会打印到屏幕上.但是,如果我这样做:
This results with escaped HTML so the form tag is actually printed to the screen. However, if I do:
{!! Form::model(....) !!}
... my fields ...
{!! Form::close() !!}
它按预期工作.我是否总是需要使用 {!!... !!}
输出 html 时?我读过的所有教程都只是使用 {{ Form::model(...) }}
的常规约定来打开表单.感谢您的任何建议!使用 Laravel 5 fwiw.
it works as expected. Do I always need to use the {!! ... !!}
when outputting html? All the tutorials I've read up on just show using the normal convention of {{ Form::model(...) }}
to open the form. Thanks for any advice! Using Laravel 5 fwiw.
推荐答案
正确.
{{ ... }}
用于原始 html{{{ ... }}}
用于使用 htmlentities()
{{ ... }}
for raw html
{{{ ... }}}
for escaping with htmlentities()
<代码>{!!... !!} 用于原始 html{{{ ... }}}
用于显式转义的内容{{ ... }}
用于默认行为(也被转义)
{!! ... !!}
for raw html
{{{ ... }}}
for explicitly escaped content
{{ ... }}
for the default behavior (which is escaped as well)
如果您不喜欢它,您可以使用以下方法更改所有 3 个标签:
If you don't like it you can change all 3 of those tags with these methods:
Blade::setRawTags($openTag, $closeTag);
Blade::setContentTags($openTag, $closeTag);
Blade::setEscapedContentTags($openTag, $closeTag);
要恢复 Laravel 4 处理事物的方式,您可以这样做:
To restore the way how Laravel 4 handled things, you can do this:
Blade::setRawTags('{{', '}}');
Blade::setEscapedContentTags('{{{', '}}}');
这篇关于Laravel 5 Form::model(...) 默认转义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!