2016-06-10 6 views
1

abrufen Ich habe einen Firmenparametersatz in jeder Route in meiner Anwendung festgelegt. Ich versuche, die Variable für diese Firma zu jeder Ansicht für den einfachen Zugriff zu senden.Routenparameter in AppServiceProvider

In meinem AppServiceProvider.php habe ich versucht, zwei Dinge:

$company = App::make('request')->route()->getParameter('company'); 
view()->share('company', $company); 

und auch:

$company = Route::getCurrentRoute()->getParameter('company'); 
view()->share('company', $company); 

Aber mit beiden von ihnen erhalte ich die Fehlermeldung:

Call to a member function getParameter() on a non-object 

Wie würden Ich gehe um die Parametervariable zu bekommen?

Edit:

ich es in der boot() Funktion tue

Antwort:

Alles, was ich folgendes in meinem Register tat, war zu tun() Funktion in AppServiceProvider:

view()->composer('*', function ($view) { 
      // all views will have access to current route 
      $view->with('company', \Route::getCurrentRoute()->getParameter('company')); 
     }); 

Antwort

2

Aktuelle Route ist noch nicht in AppServiceProvider bekannt, wie die Anwendung noch ist Bootstrapped hier. Wenn Sie auf Routenparameter zugreifen möchten, können Sie einen Ansichts-Composer verwenden. Weitere Details finden Sie hier https://laravel.com/docs/5.1/views#view-composers.

Ein kurzes Beispiel:

class AppServiceProvider extends ServiceProvider { 
    public function register() 
    { 
    view()->composer('*', function ($view) { 
     // all views will have access to current rout 
     $view->with('current_route', \Route::getCurrentRoute()); 
    }); 
    } 
} 
Verwandte Themen