Laravel屈服属性

Vix*_*xed 25 laravel laravel-views laravel-5.4

我正在尝试使用@yield@section设置属性,但是如何?我试着用

<html @yield('mainApp')>
Run Code Online (Sandbox Code Playgroud)

@section('mainApp','id="myid"')
Run Code Online (Sandbox Code Playgroud)

但它返回id =" myid" 而不是id ="myid"

我知道我可以使用默认ID来管理它,但我不喜欢这种方式,如果我需要使用自定义属性呢?

fub*_*bar 13

Laravel默认会转义HTML.因此,我看到你有两个选择.

  1. 将值作为控制器中的变量公开给视图.

    view()->share('mainApp', sprintf('id="%s"', 'myid'));

然后输出未转义的值.

<html {!! $mainApp !!}
Run Code Online (Sandbox Code Playgroud)
  1. 仅生成id属性值,而不是整个属性.

    @section('mainApp') myid @stop

    <html id="@yield('mainApp', '')">


Wai*_*rim 9

在您的控制器上,您执行以下操作:

return view('my_page')->with('myid', 'myid');
Run Code Online (Sandbox Code Playgroud)

在您的视图/布局上,您可以执行以下操作:

<html {{ $myid or '' }}>
...
Run Code Online (Sandbox Code Playgroud)

你不需要为这样的任务屈服.


Pra*_*rve 7

如果您从下面的链接中查看升级指南,您将在Blade下面看到几行:https: //laravel.com/docs/5.4/upgrade

    @section Escaping
Run Code Online (Sandbox Code Playgroud)

在Laravel 5.4中,传递给某个部分的内联内容会自动转义:

    @section('title', $content)
Run Code Online (Sandbox Code Playgroud)

如果要在部分中呈现未转义的内容,则必须使用传统的"长格式"样式声明该部分:

    @section('title')
        {!! $content !!}
    @stop
Run Code Online (Sandbox Code Playgroud)

因此,为您的查询获取结果,您需要如下所示:

    @section('mainApp', {!! 'id="myid"' !!})
Run Code Online (Sandbox Code Playgroud)


Ali*_*ief 5

你用的是哪个 Laravel 版本?在 Laravel 5.4 中,有一个关于此的更新:

刀刃

@section 转义

在 Laravel 5.4 中,传递给节的内联内容会自动转义:

@section('title', $content)

如果您想在一个部分中呈现未转义的内容,您必须使用传统的“长格式”样式声明该部分:

@section('title') {!! $content !!} @stop

https://laravel.com/docs/5.4/upgrade

长话短说,尝试使用Laravel 5.4然后使用此代码

@section('mainApp')
    id="myid"
@stop
Run Code Online (Sandbox Code Playgroud)