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.因此,我看到你有两个选择.
将值作为控制器中的变量公开给视图.
view()->share('mainApp', sprintf('id="%s"', 'myid'));
然后输出未转义的值.
<html {!! $mainApp !!}
Run Code Online (Sandbox Code Playgroud)
仅生成id属性值,而不是整个属性.
@section('mainApp')
myid
@stop
<html id="@yield('mainApp', '')">
在您的控制器上,您执行以下操作:
return view('my_page')->with('myid', 'myid');
Run Code Online (Sandbox Code Playgroud)
在您的视图/布局上,您可以执行以下操作:
<html {{ $myid or '' }}>
...
Run Code Online (Sandbox Code Playgroud)
你不需要为这样的任务屈服.
如果您从下面的链接中查看升级指南,您将在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)
你用的是哪个 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)
| 归档时间: |
|
| 查看次数: |
3073 次 |
| 最近记录: |