はじめに
レイアウトを作成するにあたって必須の@section
と@yield
について簡単に説明します。
@section
と@yield
の関係
@section
の書き方には、
index.blade.php
@section('セクション名', '画面に表示する値')
と記述するパターンと、
index.blade.php
@section(親テンプレートの@yield名)
~~~画面に表示する内容~~~
@endsection
として、親(ベース)となるテンプレートに記述された@yield(名前)
部分に、@section
と@endsection
に囲まれた部分がはめ込まれるというパターンがあります。
具体例
layouts/app.blade.php(親となるテンプレート)
<h1>@yield('title')</h1>
<div class="container">
@yield('content')
</div>
menus/index.blade.php(子となるテンプレート)
@section('title', '一覧画面')
@section('content')
<p>一覧画面を表示します</p>
@endsection
app.blade.php
の@yield('title')
部分に、index.blade.php
の@section('title', '一覧画面')
に記述した「一覧画面」が入り、同じくapp.blade.php
の@yield('content')
部分に、index.blade.php
の@section('content')
に記述した<p>一覧画面を表示します</p>
がはめ込まれます。
おわりに
一度理解すれば簡単ですね。
ほかにも、@extends
や@include
もあるので、ググってみてください。