Laravel 5 Form :: model(...)默认情况下转义了吗? [英] Laravel 5 Form::model(...) escaped by default?

查看:89
本文介绍了Laravel 5 Form :: model(...)默认情况下转义了吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

也许这是我想念的一件简单的事情,但是在我的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生成的,因此form标签实际上已打印到屏幕上.但是,如果我这样做:

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快速浏览.

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)

如果您不喜欢它,可以使用以下方法更改所有三个标签:

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(...)默认情况下转义了吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆