yieldを使用した例
一般的なのは@yieldを使用する方法です。
例えばtitleやdescriptionを設定したい場合レイアウトレンプレートは下記のように記述します。
<head> <title>@yield('title') - サイトタイトル</title> <meta name="description" content="@yield('description')"></head><body>@yield('content')</body>子のテンプレートでは@sectionディレクティブで設定します。
メインコンテンツのような長いもは@sectionから@endsectionで囲みます。
タイトルのように変数的に使用する場合は@sectionの第二引数で指定します。
@extends('layouts.app')@section('title', 'ページタイトル')@section('description', 'ページ概要')@section('content') コンテンツ@endsection変数を使用した例
ただ表示するだけだったらyieldで良いのですが、分岐させて表示させたい場合があります。
たとえばタイトルタグはトップページにはサイトタイトルのみ表示して、下層はサイトタイトルとページタイトルの間に「-」とかを付けたいとかあると思います。
これは多分yieldではできないっぽいので変数を使います。
<head> <title>@isset($title){{ $title }} - @endissetサイトタイトル</title> <meta name="description" content="{{ $description or 'サイト概要' }}"></head><body>@yield('content')</body>変数は普通に<?php ?>で囲んで指定できますが、@php @endphpの方がBladeっぽいですね。
@php$title = 'ページタイトル';$description = 'ページ概要';@endphp@extends('layouts.app')@section('content') コンテンツ@endsectionということで普通に変数使えるんだということでした。
