2016-07-26 8 views
3

ビューのコンポーザを使用してデータを読み込み、特定のビューをいくつか除外するにはどうすればよいですか? '*'の代わりに正規表現を使用できますか?laravelのビューコンポーザで特定のビューを除外する方法

public function boot() 
{ 
    view()->composer(
     '*', 
     'App\Http\ViewComposers\ProfileComposer' 
    ); 
} 

私は避けたいのですがちょうど2つのビューがありますが、彼らは他の人ではなく、すべての99人を宣言することを確認することによって使用されるのと同じブレードは最高だろう延長 - 私はちょうど残すべきものを定義することができる場合それは素晴らしいだろう。

答えて

0

おそらく、あなたのProfileComposerコン方法Viewクラスのリポジトリでは、あなたのView Composer

public function boot() 
{ 
    view()->composer(
     '*', 
     'App\Http\ViewComposers\ProfileComposer' 
    ); 
} 

を登録するには、これを行うための最善の方法ではありませんが、それはあなたのサービスプロバイダでは、この

のように行われることができますタイプが示唆されます。それを使用して現在のビュー名の名前を取得し、除外ビュー名の条件を作成します。

class ProfileComposer 
{ 


    public function __construct() 
    { 
     // Dependencies automatically resolved by service container... 
    } 

    /** 
    * Bind data to the view. 
    * 
    * @param View $view 
    * @return void 
    */ 
    public function compose(View $view) 
    { 
     $excludedViews = ['firstView','SecondView']; 

     //Check if current view is not in excludedViews array 
     if(!in_array($view->getNmae() , $excludedViews)) 
     { 
      $view->with('dataName', $this->data); 
     } 
    } 
} 
関連する問題