こんにちは。たいら(@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ディレクティブの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
 
  
  
  
  
コメント