Laravel 5 Form::model(...) 默认转义? [英] Laravel 5 Form::model(...) escaped by default?

查看:26
本文介绍了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,因此表单标签实际上会打印到屏幕上.但是,如果我这样做:

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

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