2016-08-04 20 views
0

Normalerweise in Laravel erhalten Sie eine Anfrage Tasche mit allen Parametern drin. Bei einem Serviceanbieter ist dies jedoch nicht der Fall. Aber wir haben das request() Objekt.Get URL Parameter von Service Provider in Laravel

Dies enthält jedoch nicht die URL-Parameter im Ressourcen-Routing.

Also was ich suche ist eine Möglichkeit, die {id} von der Route abzurufen.

ich versucht habe:

request()->route('id') 
Route::get('id') 
Request::get('id') 

Alle diese null zurück

+0

Können Sie den Code für Ihren Provider angeben? Damit wir sehen, was Sie wirklich erreichen wollen. –

+0

Kein Code ist meiner Meinung nach erforderlich. Ich möchte nur einen Parameter in einem Service Provider bekommen. Ich brauche keine Abhilfe, weil ich bereits eine implementiert habe. – Matt

Antwort

4

Beide Boot() und Register() Methoden von jedem Service Provider aufgerufen werden, bevor Anforderung analysiert und Anforderungsparameter sind bekannt, deshalb können Sie nicht darauf zugreifen.

Dienstanbieter sollen Dienste registrieren und sollten nicht vom Kontext der Anforderung abhängig sein. Wenn Sie Anforderungsparameter in Ihren Diensten verwenden möchten, deklarieren Sie Anforderung Dienst als eine Abhängigkeit von Ihrem Dienst, damit es in dem Moment injiziert wird, in dem Ihr Dienst instanziiert wird.

+0

Das macht eigentlich viel Sinn. Ich bleibe bei meiner Problemumgehung. – Matt