Laravel 5.0-刀片模板错误

laravel blade laravel-5

7878 观看

2回复

7066 作者的声誉

刚玩过Laravel 5,在使用Blade模板语法时遇到了困难。我的所有特殊字符似乎都已被转义。我的设置有问题吗?

为了显示我的设置,我将以下内容添加到config/app.php

别名:'Form' => 'Illuminate\Html\FormFacade', 'Html' => 'Illuminate\Html\HtmlFacade' 服务提供商:'Illuminate\Html\HtmlServiceProvider'

现在是我的刀片视图:

@extends('layout')

@section('content')

    {{ Form::open() }}

    {{ Form::close() }}

@stop

这是浏览器中的输出:

<form method="POST" action="http://test.app:8000/categories/create" accept-charset="UTF-8"><input name="_token" type="hidden" value="m4RdpqdbbqQ2F7iwfDkSDKTzEmaBGNvpJbj5LnqE"> </form>

这是view-source的输出:

<!doctype HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>My Site</title>
    </head>
    <body>

        <header></header>

        <content>
    &lt;form method=&quot;POST&quot; action=&quot;http://test.app:8000/categories/create&quot; accept-charset=&quot;UTF-8&quot;&gt;&lt;input name=&quot;_token&quot; type=&quot;hidden&quot; value=&quot;m4RdpqdbbqQ2F7iwfDkSDKTzEmaBGNvpJbj5LnqE&quot;&gt;

    &lt;/form&gt;

</content>

    </body>
</html>
作者: Gravy 的来源 发布者: 2014 年 9 月 14 日

回应 (2)


31

19052 作者的声誉

决定

Laravel 5中{{ }}将自动转义。您现在需要使用的是{!! !!}

{!! Form::open() !!}

{!! Form::close() !!}

有关此更改的更多信息,请参见https://laracasts.com/discuss/channels/general-discussion/new-blade-tag-for-unescaped-data-thoughts(感谢@ user1960364)。

作者: Marwelln 发布者: 14.09.2014 11:33

1

11 作者的声誉

如果必须使用旧的(L4.2或更低版本)Blade语法,请在AppServiceProvider @ register的底部添加以下行:

\Blade::setRawTags('{{', '}}');
\Blade::setContentTags('{{{', '}}}');
\Blade::setEscapedContentTags('{{{', '}}}');

不应轻易做到这一点,它可能会使您的应用程序更容易受到XSS攻击,因此请谨慎使用。

作者: Bojan Lazarevic 发布者: 17.02.2015 06:17
32x32