2016-07-26 31 views
3

如何確保我通過視圖編輯器爲選擇的視圖加載數據,並且只排除幾個,兩個視圖是特定的?我可以使用正則表達式而不是'*'嗎?如何使用laravel查看作曲家排除某些視圖

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

只是有兩種觀點我想避免,它們擴展被別人使用相同的刀片,不知道聲明所有的99人將是最好的 - 如果我可以定義要離開的人那會很棒。

回答

0

也許它不是這樣做的最佳方式,但註冊的View Composer

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

在你ProfileComposer撰寫方法View類倉庫的類型是暗示它可以像這樣

您的服務提供商來完成。使用它來獲取當前的視圖名稱併爲排除的視圖名稱創建條件。

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); 
     } 
    } 
}