1.

【Laravel】親ビューと子ビュー(@section, @yield, @extends, @parent, @include)

編集
この記事の要点
  • Laravel Blade の親ビュー / 子ビュー(テンプレート継承)
  • 親側: @section / @yield差し込み枠を定義
  • 子側: @extends('親') + @section('name') ... @endsection
  • 部分テンプレ取込: @include('partial') / 親内容呼び出し: @parent

 

Laravelの親ビュー、子ビューに関する記事です。

 

テンプレートとなる親ビューの作成

viewsディレクトリ内に任意ディレクトリを作り、

その中にXXX.blade.phpというファイルを配置する。

※ファイルの拡張子をXXX.blade.phpとする。

 

resources/views/任意ディレクトリ/XXX.blade.php

    

     @yield('title')

    @section('sidebar')

        サイドバー

    @show

    @yield('content');

@sectionディレクティブはコンテンツのセクションを定義する。

@yieldディレクティブは指定したセションの内容を表示するために使用する。

 

子ビューの作成

子ビューを定義するには、Blade @extendsディレクティブを使用する。

Bladeレイアウトを拡張するビューは、@sectionディレクティブを使用し、レイアウトのセクションに内容を挿入。

レイアウトでセクションを表示するには@yieldを使用する。

 

resources/views/XXX.blade.php

@extends('親ビューを配置したディレクトリ.app')

@section('title', 'Page Title')

@section('sidebar')

 @parent

 

サイドバーに追加

@endsection

@section('content')

 

本文のコンテンツ

@endsection

sidebarセクションでは、レイアウトのサイドバーの内容をコンテンツに上書きするのではなく、

追加するために@parentディレクティブを使用。

@parentディレクティブはビューをレンダーするときに、レイアウトの内容に置き変わる。

 

@includeを使用することで個別にビューを読み込むことが出来る。

@include('個別のビュー')

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 親ビューと子ビュー(@section, @yield, @extends, @parent, @include)
  2. 条件分岐(@if)
  3. 繰り返し(@for, @foreach, @forelse, @while)
  4. 個別のページにcssやjsを反映させる方法

最近更新/作成されたページ