タイトル: 親ビューと子ビューの作成(@section, @yield, @extends, @parent)
Laravelの親ビュー、子ビューに関する記事です。
テンプレートとなる親ビューの作成
viewsディレクトリ内に任意ディレクトリを作り、
その中にXXX.blade.phpというファイルを配置する。
※ファイルの拡張子をXXX.blade.phpとする。
resources/views/任意ディレクトリ/XXX.blade.php
<!doctype html> <html > <head> <meta charset="UTF-8"> <title> @yield('title')</title> </head> <body> @section('sidebar') サイドバー @show @yield('content'); </body> </html> |
@sectionディレクティブはコンテンツのセクションを定義する。
@yieldディレクティブは指定したセションの内容を表示するために使用する。
子ビューの作成
子ビューを定義するには、Blade @extendsディレクティブを使用する。
Bladeレイアウトを拡張するビューは、@sectionディレクティブを使用し、レイアウトのセクションに内容を挿入。
レイアウトでセクションを表示するには@yieldを使用する。
resources/views/XXX.blade.php
@extends('親ビューを配置したディレクトリ.app') @section('title', 'Page Title') @section('sidebar') @parent <p>サイドバーに追加</p> @endsection @section('content') <p>本文のコンテンツ</p> @endsection |
sidebarセクションでは、レイアウトのサイドバーの内容をコンテンツに上書きするのではなく、
追加するために@parentディレクティブを使用。
@parentディレクティブはビューをレンダーするときに、レイアウトの内容に置き変わる。