こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでBladeビューを継承できる@extendsディレクティブを丁寧に説明していきます。
Bladeビューについては、こちらの記事をご参考ください。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Laravelのバージョン | 8.10.0 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
@extendsディレクティブとは
@extendsディレクティブとは、継承するBladeビューを指定することができるディレクティブです。
@extendsディレクティブは、↓のように使います。
指定するパスは、
プロジェクト\resources\views
以降のパスを指定します。
たとえば、viewsディレクトリ直下にあるBladeビューを継承したい場合
1 |
@extends('sample') |
と指定します。
viewsディレクトリ配下のworkディレクトリのtest.blade.phpを継承したい場合
1 |
@extends('work.sample') |
と指定します。
では、次の章で実際に使ってみます。
@extendsディレクティブを解説するプログラムの概要
@extendsディレクティブを解説するプログラムは、
- 親Bladeビュー
- 子Bladeビュー
- web.php
の3つを使います。
継承関係である
- 親:parent.blade.php
- 子供:child.blade.php
のBladeビュー合計2つ用意します。
どちらもviewsディレクトリ直下にあるとします。
web.phpには、【http://〇〇.〇〇.〇〇:8000/child】でアクセスした場合、子供のchild.blade.phpを表示させるように定義します。
子供であるchild.blade.phpにアクセスした場合、親の内容が継承できているかを確認します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
親:parent.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>継承テスト</title> </head> <body> <p>parent.blade.phpを表示</p> </body> </html> |
子供:child.blade.phpのサンプルプログラム
1 2 3 4 |
child.blade.phpを表示 @extends('parent') |
web.phpのサンプルプログラム
1 2 3 4 5 6 7 |
<?php use Illuminate\Support\Facades\Route; Route::get('/child', function () { return view('child'); }); |
実行して確認
本当に継承できているのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/child
※コマンドプロンプトに記載されているURL - http://localhost:8000/child
どちらかのURLにアクセスすれば、継承できていることが確認できます!
まとめ:Bladeビューで継承するときは@extendsを使ってみよう
以上がLaravelのBladeビューの継承ができる@extendsディレクティブの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント