(Laravel) ビュー【bladeのレイアウトの使い方】

laravel-biew-blade-layout

 

LaravelのViewについてのメモ書き。
とくにbladeのレイアウトについて。

 

bladeの「レイアウト」とは

viewにあらかじめ決めておく、大まかな表示内容や区画のこと。

laravel-layout-image

 

bladeの「継承」と「セクション」

bladeのレイアウトを理解する上で重要な概念が、「継承」「セクション」だ。

 

継承とは

既存のテンプレートのレイアウトを継承して新しいテンプレートを作成すること。
継承した新しいテンプレートでは、継承元にない要素を追加するだけでテンプレートを作成することができる。

 

親レイアウトを継承する書式

継承をするためには、子レイアウトから、親レイアウトを読み込む必要がある。
書式は下記。

# 子レイアウト(.blade.php)の始めに記述する。
@extends('親レイアウト名')

※/resources/views/からのパスで指定する。
※blade.phpは省略できる。

 

セクションとは

テンプレートに用意した区画のこと。

継承元(親レイアウト)にセクションを用意しておいて、継承した子のテンプレートではセクションの中身を書いていけば、同じようなレイアウトのテンプレートを簡単に作ることができる。

 

レイアウトに使用するディレクティブ

ではレイアウトに使用するディレクティブについて、解説していく。

 

@yield

親レイアウトに指定するディレクティブ。
子レイアウトで記述するセクションの内容が埋め込まれる場所を示す。

@yield(‘セクション名’)
laravel-blade-yield-image

 

@section

子レイアウトに指定するディレクティブ。
親レイアウトに対応する@yield(‘セクション名’)のディレクティブ名があった場合、そこに埋め込まれて表示される。

@section(‘セクション名’)

    //表示内容

@endsection

または

@section(’セクション名’, 表示内容 )
laravel-blade-section-image

 

ちなみに親レイアウトに同じセクション名の@sectionディレクティブが存在した場合、子レイアウトのsectionで内容が上書きされる

 

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。