この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:guest
更新日時:2019-03-31 16:18:26

タイトル: View::shareを用いて共通の値を各ビューに渡す方法
SEOタイトル: 【Laravel】View::shareを用いて共通の値を各ビューに渡す方法

この記事の要点
  • Laravel の View::share: 全 View で共通の値を渡せる機能
  • 実装: ServiceProvider の boot() で View::share('key', $value) を宣言
  • すべての Blade テンプレートから {{ $key }} で参照可能
  • Layout で必須の共通値(ログインユーザ等)に最適

 

Layoutで必ず取得しなければならない値をわざわざ一つずつのコントローラーで取得するのは冗長的である。

当問題はView::shareという機能を用いて解決することができる。

 

プロバイダーの作成

php artisan make:provider CommonSeriviceProvider

 

プロバイダーの登録

config/app.phpに以下の文言を追加

'providers' => [

    ...

    App\Providers\CommonSeriviceProvider::class,

]

 

 

サービスプロバイダー

<?php

namespace App\Providers;

use App\Http\ViewComposers\CommonComposer;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class CommonServiceProvider extends ServiceProvider
{
    /**
     * コンテナ結合の登録
     *
     * @return void
     */
    public function
boot()
    {

         View::share('xxx', 'zzz');
    }
}

上記の設定で各ビューで $xxx が参照可能となる。