_RightSideBar.blade.php
_に_Laravel blade
_というレイアウトがある場合、1つの領域yield('content')
ともう1つの領域yield('sidebar')
があります。
RightSideBar
を拡張しているビューにsection('sidebar')
がない場合、_default partial
_を表示する組み込みの方法はありますか?
値をデフォルトで渡すことができることはわかっています。
はい、デフォルトを渡すことができます
ドキュメント を見る
@yield('sidebar', 'Default Content');
子テンプレートに@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')
他のビューファイルでは、コンテンツのみを設定できます。
@section('content')
<p>Welcome</p>
@stop
または、別のレイアウトを設定することもできます。
@section('content')
<p>Welcome</p>
@stop
@section('defaultlayout')
<div>
@yield('content')
</div>
@stop
@stopは@endsectionと同等です。
ドキュメントはデフォルトを文字列としてのみ指定していますが、実際にはビューを渡すことができます
@yield('sidebar', \View::make('defaultSidebar'))
Laravel 5.2は、セクションがビューで定義されているかどうかをチェックする@hasSection
ディレクティブを追加しました。 5.3または5.4のドキュメントでは、なんらかの理由で言及されていません。
@hasSection('sidebar')
@yield('sidebar')
@else
@yield('default-sidebar')
@endif