Php 拉维刀片:你能产生一个默认的部分吗
如果我在Php 拉维刀片:你能产生一个默认的部分吗,php,laravel,laravel-blade,Php,Laravel,Laravel Blade,如果我在laravelblade中有一个名为RightSideBar.blade.php的布局,一个区域yield('content'),另一个区域yield('sidebar') 如果扩展右侧栏的视图没有部分(“侧栏”),是否有内置方式显示默认部分 我知道你可以通过默认值传递值,只是想知道是否有办法将默认值设置为部分值。是的,你可以传递默认值 看着 @yield('sidebar','defaultcontent') 当子模板没有@section('sidebar')大多数时候我们需要多行默认
laravelblade
中有一个名为RightSideBar.blade.php
的布局,一个区域yield('content')
,另一个区域yield('sidebar')
如果扩展右侧栏的视图没有部分(“侧栏”)
,是否有内置方式显示默认部分
我知道你可以通过默认值传递值,只是想知道是否有办法将默认值设置为部分值。是的,你可以传递默认值
看着
@yield('sidebar','defaultcontent')代码>
当子模板没有@section('sidebar')
大多数时候我们需要多行默认内容时,这基本上是一个默认输出,我们可以使用以下语法:
@section('section')
Default content
@show
例如,我在模板文件中有:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@show
@节(“自定义布局”)
@产量(‘含量’)
@展示
您可以看到@show和@stop/@endsection之间的区别:上面的代码相当于下面的代码:
@section('customlayout')
<article class="content">
@yield('content')
</article>
@stop
@yield('customlayout')
@节(“自定义布局”)
@产量(‘含量’)
@停止
@产量('customlayout')
在其他视图文件中,我可以仅设置内容:
@section('content')
<p>Welcome</p>
@stop
@节(“内容”)
欢迎光临
@停止
或者我也可以设置不同的布局:
@section('content')
<p>Welcome</p>
@stop
@section('defaultlayout')
<div>
@yield('content')
</div>
@stop
@节(“内容”)
欢迎光临
@停止
@节('defaultlayout')
@产量(‘含量’)
@停止
@stop与@endsection等效。尽管文档仅将默认值指定为字符串,但实际上您可以传递视图
@yield('sidebar', \View::make('defaultSidebar'))
Laravel 5.2添加了一个@hasSection
指令,用于检查视图中是否定义了一个节。
由于某种原因,5.3或5.4文档中没有提到
@hasSection('sidebar')
@yield('sidebar')
@else
@yield('default-sidebar')
@endif
实际上很简单,虽然文档只将默认值指定为字符串,但实际上您可以传递一个view@yield('sidebar',\view::make('defaultSidebar'))这是不正确的。要呈现一个部分,你不能只传递一个字符串,而是按照上面@user3238419的建议,执行View::make(pathtoview)我想OP已经提到,他知道他可以按照评论中提到的那样执行。我的回答是错误的,因为我把一个例子说成是字符串而不是刀片吗?是的,因为他明确地说:“我知道你可以在默认情况下传递一个值…”,而且问题是要求一个部分字符串,而不是普通字符串。这种方法的问题是html被转义