2016-10-27 8 views
0

すべてのビューで変数を共有したいのですが、これが正しいかどうかわかりません。私はサービスプロバイダを作った:すべてのビューで変数を共有するためのLaravelサービスプロバイダ

<?php 

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 
use App\Worktype; 

class ShareWorktypesInViewsProwider extends ServiceProvider 
{ 
    /** 
    * Bootstrap the application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 

     $worktypes = Worktype::all(); 
     view()->share('worktypes', $worktypes); 


    } 

    /** 
    * Register the application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     // 
    } 
} 

私はまだ私の意見に誤りがある。私は私のサービスプロバイダを登録する必要がありますか、それとも箱から出てきますか?

+0

はい、サービスプロバイダが動作するためには、config/app.phpに「登録する」必要があります。なぜこれを知っているのですか?ポイント – lewis4u

答えて

1

まず、このような小さなコードの場合、私は新しいサービスプロバイダを作ることについて心配しません。私はあなたのAppServiceProviderに上記を加えます。また、上記のコードをインラインで記述します。

view()->share('worktypes', Worktype::all()); 

プロバイダーの登録方法。文字通り、config/app.phpに移動し、providers配列を見つけてプロバイダを追加するだけです。

App\Providers\ShareWorktypesInViewsProwider::class, 

をドキュメントそれのために:あなたのあなたが追加しますすることができて https://laravel.com/docs/5.3/providers#registering-providers

は、この情報がお役に立てば幸い!

+0

の回答者を書いてくださいこれは答えです – lewis4u

関連する問題