質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

3回答

1273閲覧

【macOS】 レイアウトの継承ができない。

CobaCobalto10

総合スコア7

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/02/27 01:34

前提・実現したいこと

閲覧頂きありがとうございます。
早速ですが、下記の内容が解決できず困っています。

■ header.blade.phpのデータを継承ができない。

PHP Laravelを使ってHtmlとcssをリファクタリングしています。

index.blade.php に @section と @yield を使用して
header.blade.phpのデータを継承を試みているのですがうまくいきません。

**app.blade.php** <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>WW</title> <meta name="description" content="日々新しいプログラミング情報を皆に"> <link rel="icon" type="image/png" href="img/favicon.png"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- CSS --> <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css"> <link href="https://fonts.googleapis.com/css?family=Philosopher" rel="stylesheet"> <link href="css/style.css" rel="stylesheet"> </head> <body> @yield('content') </body> </html> ーーーーーーーーーーーーーーーーーーーーー **index.blade.php** @extends('layouts.app') @section('content') <div id="home" class="big-bg"> yield('header') **←←←←←←←←←←←←←←←←←←ここに header.blade.php を継承したい** <div class="home-content wrapper"> <h2 class="page-title">We'll Make Your Day</h2> <p>今日も早朝からプログラミング</p> <a class="button" href="menu">一覧を見る</a> </div><!-- /.home-content --> </div><!-- /#home --> @endsection ーーーーーーーーーーーーーーーーーーーーー **header.blade.php 継承ができないテンプレート** @section('header') <header class="page-header wrapper"> <h1><a href="home"><img class="logo" src="img/logo.svg" alt="ホーム"></a></h1> <nav> <ul class="main-nav"> <li><a href="news">ニュース</a></li> <li><a href="menu">一覧</a></li> <li><a href="contact">コンタクト</a></li> </ul> </nav> </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')への継承

各データの階層
イメージ説明

使用しているPCなど
・ macOS Catalina バージョン10.15.2
・ フレームワーク Laravel

他にも必要な情報があった場合、恐れ入りますが
コメントを頂けますと助かります。

以上、よろしくお願いいたします。
参考にした記事
https://qiita.com/kamikoloss/items/b7ec871657d25a00ef67
https://qiita.com/awesam86/items/0bc8c3f70222220259b0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

継承の概念が多分理解しきれていないのかと思います。
継承は元となるファイルを拡張してあげるイメージで、継承元はあくまで一つです。今回の場合ですと表示するファイルはindexで継承元はapp、headerは継承元の関係にはなりません。(indexを継承元にしてheaderを表示するファイルにすれば多重継承で実現出来るがファイルの意味が変わってしまう)

おそらく質問者さんがやりたいことはincludeかcomponentを使って実現できるかと思います。

サブビューの読み込み
コンポーネントとスロット

投稿2020/02/27 03:03

zushi0905

総合スコア683

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CobaCobalto10

2020/02/27 05:16

zushi0905様 こんなしょうもない質問に真摯にご回答頂き、ありがとうございます。 zushi0905様の助言のおかげでcomponentを使って以下のように解決しました。 Laravelはやりがいがあり、面白いのでもっと勉強します。 ほんとにありがとうございました。
zushi0905

2020/02/27 06:03

どういたしまして。 laravel面白いですよね!お互い頑張りましょう^^
guest

0

Views以下にcomponentsフォルダを作成し、header.blade.phpを移動させる
イメージ説明

ーーーーーーーーーーーーーーーーーーーーー
header.blade.php  componentの元

<header class="page-header wrapper"> <h1><a href="home"><img class="logo" src="img/logo.svg" alt="ホーム"></a></h1> <nav> <ul class="main-nav"> <li><a href="news">ニュース</a></li> <li><a href="menu">一覧</a></li> <li><a href="contact">コンタクト</a></li> </ul> </nav> </header>

ーーーーーーーーーーーーーーーーーーーーー
**index.blade.php **

@extends('layouts.app')

@section('content')

<div id="home" class="big-bg">

@component('components.header') ← このように修正
@endcomponent

<div class="home-content wrapper"> <h2 class="page-title">We'll Make Your Day</h2> <p>おしゃれなカフェで癒やされてみませんか?無添加の食材で体の中からリフレッシュ。</p> <a class="button" href="menu">メニューを見る</a> </div><!-- /.home-content -->
</div><!-- /#home --> @endsection

◆注意 @endcomponentで閉じないと表示されませんでした。

以上の流れで解決できました。

投稿2020/02/27 05:31

CobaCobalto10

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Views以下にcomponentsフォルダを作成し、header.blade.phpを移動させる
イメージ説明

ーーーーーーーーーーーーーーーーーーーーー
header.blade.php  componentの元

<header class="page-header wrapper"> <h1><a href="home"><img class="logo" src="img/logo.svg" alt="ホーム"></a></h1> <nav> <ul class="main-nav"> <li><a href="news">ニュース</a></li> <li><a href="menu">一覧</a></li> <li><a href="contact">コンタクト</a></li> </ul> </nav> </header>

ーーーーーーーーーーーーーーーーーーーーー
**index.blade.php **

@extends('layouts.app')

@section('content')

<div id="home" class="big-bg">

@component('components.header') ← このように修正
@endcomponent

<div class="home-content wrapper"> <h2 class="page-title">We'll Make Your Day</h2> <p>おしゃれなカフェで癒やされてみませんか?無添加の食材で体の中からリフレッシュ。</p> <a class="button" href="menu">メニューを見る</a> </div><!-- /.home-content -->
</div><!-- /#home --> @endsection

◆注意 @endcomponentで閉じないと表示されませんでした。

以上の流れで解決できました。

投稿2020/02/27 05:24

CobaCobalto10

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問