LaravelのBladeの@yieldと@section【現役エンジニアが解説】

PROGRAM

今回は、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も複数書くことができます。