1.

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

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

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

 

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

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

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

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

 

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

<!doctype html>

<html >

<head>

    <meta charset="UTF-8">

    <title> @yield('title')</title>

</head>

<body>

    @section('sidebar')

        サイドバー

    @show

    @yield('content');

</body>

</html>

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

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

 

子ビューの作成

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

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

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

 

resources/views/XXX.blade.php

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

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

@section('sidebar')

 @parent

 <p>サイドバーに追加</p>

@endsection

@section('content')

 <p>本文のコンテンツ</p>

@endsection

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

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

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

 

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

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

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

最近の質問

コメント一覧

コメントがありません

ログインしなければコメント投稿はできません。