質問: ### 前提・実現したいこと 閲覧頂きありがとうございます。 早速ですが、下記の内容が解決できず困っています。 ■ header.blade.phpのデータを継承ができない。 PHP Laravelを使ってHtmlとcssをリファクタリングしています。 index.blade.php に @section と @yield を使用して header.blade.phpのデータを継承を試みているのですがうまくいきません。 ``` **app.blade.php** WW @yield('content') ーーーーーーーーーーーーーーーーーーーーー **index.blade.php** @extends('layouts.app') @section('content') yield('header') **←←←←←←←←←←←←←←←←←←ここに header.blade.php を継承したい** We'll Make Your Day 今日も早朝からプログラミング 一覧を見る @endsection ーーーーーーーーーーーーーーーーーーーーー **header.blade.php 継承ができないテンプレート** @section('header') ニュース 一覧 コンタクト @endsection ``` ### 試したこと スペルミスの確認や、@includeでの対応など。 ### 補足情報(FW/ツールのバージョンなど) ◆app.blade.php と index.blade.php について 下記2つの継承は問題なく行われています。 ・index.blade.php の @section('content') から app.blade.php の @yield('content') への継承 ・app.blade.php から @extends('layouts.app')への継承 各データの階層 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/298f95f051181513f8fa850757772f2b.png) 使用しているPCなど ・ macOS Catalina バージョン10.15.2 ・ フレームワーク Laravel 他にも必要な情報があった場合、恐れ入りますが コメントを頂けますと助かります。 以上、よろしくお願いいたします。 参考にした記事 https://qiita.com/kamikoloss/items/b7ec871657d25a00ef67 https://qiita.com/awesam86/items/0bc8c3f70222220259b0
回答: 継承の概念が多分理解しきれていないのかと思います。 継承は元となるファイルを拡張してあげるイメージで、継承元はあくまで一つです。今回の場合ですと表示するファイルはindexで継承元はapp、headerは継承元の関係にはなりません。(indexを継承元にしてheaderを表示するファイルにすれば多重継承で実現出来るがファイルの意味が変わってしまう) おそらく質問者さんがやりたいことはincludeかcomponentを使って実現できるかと思います。 サブビューの読み込み コンポーネントとスロット