2016-07-26 19 views
3

Wie kann ich sicherstellen, dass ich Daten über View Composer für ausgewählte Ansichten laden und nur ein paar, zwei Ansichten ausschließen, um genau zu sein? Kann ich eine Regex anstelle von '*' verwenden?Ausschließen bestimmter Ansichten mit Laravel View Composer

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

Es gibt nur zwei Ansichten i vermeiden möchten, erweitern sie die gleiche Klinge von anderen verwendet, nicht sicher, ob alle 99 anderen erklären würde das Beste sein - wenn ich die, die links definieren können werden das wäre großartig.

Antwort

0

Vielleicht ist es nicht beste Weg, dies zu tun, aber es kann wie diese

In Ihrem Dienstanbieter registrieren Ihre Ansicht Komponist

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

In Your ProfileComposer compose Methode View-Klasse-Repository getan ist Typ angedeutet. Verwenden Sie diese Option, um den Namen des aktuellen Namens der Ansicht abzurufen und die Bedingung für den Namen der ausgeschlossenen Ansicht zu übernehmen.

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