2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelでレイアウトを共通化する方法

Last updated at Posted at 2023-06-27

Laravelでレイアウトを共通化する方法

レイアウトを共通化するイメージ

全ページに共通するレイアウトを実装したファイルを1つ作成。(親)

各ページで違うレイアウトを実装したファイルをそれぞれ作成。(子)
レイアウト共通化.png

親ファイルを作成する。

resource/viewsにlayoutsフォルダを作成する。
②1で作成したフォルダに親ファイルを作成する。
 ファイル名:app.blade.php
③2で作成したファイルに、前ページに共通するコードを書く。
④ページごとに違うコードは@yieldを使用する。

app.blade.php
<head>
    <meta charset="UTF-8">
    <title>@yield('title')<title>
<head>

※引数は子ファイルで呼び出す時に、親ファイルのどの部分かわかるような名前にする。

子ファイルにコードを書く。

①親ファイルを指定する。@extendsを使用する。

〇〇.blade.php
    @extends('layouts.app')

※引数はresources/viewを省略し、〇.blade.phpの.blade.phpを省略する。
 階層は/ではなく.を書く。

②親ファイルに書いた@yieldを置きかえるコードを書く。@sectionを使用する。

〇〇.blade.php
<!-- 文字列を置きかえる場合 -->
@section('@yieldの引数に指定した名前', '置き換える文字列')

<!-- 複数行のコードを置きかえる場合 -->
@section('@yieldの引数に指定した名前')
    置きかえるコード
@endsection

※書き方が2種類ある。

ヘッダーとフッターを部品化する。

①ファイルを2つ用意し、それぞれヘッダーとフッターのコードを書く。
 ファイル場所:resources/views/layouts
 ファイル名:header.blade.phpfooter.blade.php
②親ファイルにヘッダーとフッターのファイルを呼び出すコードを書く。@includeを使用する。

app.blade.php
@include('layouts.header')
:
@include('layouts.footer')

※引数の書き方は@extendsと同じく、resources/viewを省略し、〇.blade.phpの.blade.phpを省略する。
 階層は/ではなく.を書く。

アプリ名を共通化する

例:ヘッダーの左側にどのページでも同じものを表示する場合

①HTMLでは以下のように記述する。(例)

<a href="#">
    {{ config('app.name', 'Laravel') }}
</a>

↑config('文字列が設定されている場所', '文字列が設定されていない場合に表示する文字列')
例:app.nameに文字列が設定されていない場合は、'Laravel'という文字列を表示する。

②表示される文字列を変更する。
1:config(app.name) →config/app.php を見る。
2:app.phpでnameを探す。

app.php
'name' => env('APP_NAME', 'Laravel'),

3:APP_NAMEが定義されている場所を探す。(Laravelをダウンロードしたフォルダ直下の.envファイルを見る。)
4:.envでAPP_NAMEを探す。

APP_NAME=Laravel

5:APP_NAMEの値を変える。※文字列に''はつけなくて良い。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?