LaravelのBladeの@yieldと@section【現役エンジニアが解説】
今回は、LaravelのBladeの@yieldと@sectionについて、簡単に解説していきます。
Bladeの@yieldと@sectionとは
LaravelのBladeの@yieldは親(テンプレート)Bladeに記載するものです。
一方で、@sectionは@yieldで切り出した部分を子Bladeで別途定義する際に使います。
さらに@extends()というものもありますが、これは子Bladeで親Bladeを継承する際に使います。
親Bladeの記述例
親BladeはテンプレートBladeとなります。
ここではresources/views/layouts/parent.blade.phpに保存します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ほげシステム</title> </head> <body> @yield('content') </body> </html>
上記の例のように、外に切り出したい部分を@yieldで記述しておきます。
子Bladeの記述例
子Bladeは親Bladeを継承する必要があります。
@extends('layouts.parent') @section('content') <p>bodyの中身を書く</p> @endsection
上記のように@extendsで継承する際はresources/viewsディレクトリがルートになるため、そこからのパスを記載します。
切り出した部分については@sectionと@endsectionの間に内容を書き、@yieldが複数ある場合には、対応する@sectionも複数書くことができます。