LoginSignup
1
3

More than 1 year has passed since last update.

Laravelでタイトル共通化+ページごとに個別設定する方法

Posted at

タイトルを共通化したいとき

①.envファイルの変更

共通タイトルを「taro」とする場合、

.env
APP_NAME=taro

上記のように記述します。
なお、半角スペースを入れるとエラーになります。
上記「taro」としていますが、例えば「test taro」みたいにするとエラーになるということです。

②bladeファイルを編集

app.blade.php
<title>{{ config('app.name') }}</title>

これでソースのtitleおよびブラウザのタブ内を見ると、先ほど設定した「taro」になります。
ちなみに、上記app.nameはconfig/app.phpのnameを読み込んでいます。

さて、そのnameはというと

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

ここでの'APP_NAME'は.envファイルの’APP_NAME’を読み込んで、
空欄であればLaravelと表示するという意味です。

ページごとにタイトルを設定したいとき

bladeファイルのtitleタグ内に以下のように記述します。

<title>@yield('title')</title>

また、各ブレードファイルには以下のように記述します。

@section('title', 'ページごとのタイトル')

個別設定もしたいけど共通タイトルも使いたいとき

条件分岐を使います。
各bladeファイルに@section('title')があればそれを表示し、ない場合はconfig('app.name')のみ表示させるよう記述していきます。

@hasSection('title')
    <title>@yield('title')</title>
@else
    <title>{{ config('app.name') }}</title>
@endif

これで個別タイトルが記述されていればそれを表示し、なければ.envファイルのAPP_NAMEで設定した共通タイトルを表示するようになります。

参考

1
3
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
1
3