2016-07-26 1 views
3

일부보기의보기 작성기를 통해 데이터를로드하고 특정보기를 두 개만 제외하도록하려면 어떻게해야합니까? '*'대신 정규식을 사용할 수 있습니까? 난 그냥 남아있을 수있는 사람을 정의 할 수 있습니다 경우 -laravel view composer를 사용하여 특정보기를 제외하는 방법

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

내가 피하고자 두 견해가있다, 그들은 최선을 수있는 모든 99 개 다른 사람을 선언해야합니다 다른 사람에 의해 사용되는 동일한 블레이드,하지를 확장 그게 좋을거야.

답변

0

은 아마도이 작업을 수행하는 가장 좋은 방법은 아니지만 당신의 ProfileComposer 작성 방법보기 클래스 저장소에서

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