2015-05-05 24 views
25

Jestem nowy w firmie Laravel 5 i próbuję użyć nowego formularza żądania do sprawdzenia wszystkich formularzy w mojej aplikacji.Jak korzystać z parametru trasy zapytania w formularzu Laravel 5?

Teraz utknąłem w punkcie, w którym muszę USUNĄĆ zasób i stworzyłem DeleteResourceRequest tylko po to, aby użyć metody autoryzacji.

Problem polega na tym, że muszę znaleźć identyfikator, który jest żądany w parametrze trasy, ale nie widzę sposobu, aby go wprowadzić do metody autoryzacji.

mogę używać id w metodzie kontrolera tak:

public function destroy($id, DeletePivotRequest $request) 
{ 
    Resource::findOrFail($id); 
} 

Ale jak uzyskać to do pracy w metodzie autoryzacji Wniosku formie?

Odpowiedz

44

To bardzo proste, wystarczy użyć metody route(). Zakładając, że parametr trasa nazywa id:

public function authorize(){ 
    $id = $this->route('id'); 
} 
+0

Dziękuję za szybką odpowiedź. Zrobiłem dd ($ this-> route ('id')); w metodzie autoryzacji. Zwraca wartość null. :( – Rohan

+5

Jeśli używasz tras zasobów, nazwa parametru powinna być nazwą zasobu, na przykład 'post', jeśli masz' Route :: resource ('post', ...) ' – lukasgeiter

+0

Tak, pomyślałem w końcu przez zrzucenie samego obiektu trasy, dziękuję bardzo. :) – Rohan

5

Można dostępu do parametru Wartość trasa przez Illuminate \ http \ instancja Zapytanie

public function destroy($id, DeletePivotRequest $request) 
{ 
    if ($request->route('id')) 
    { 
     // 
    } 

    Resource::findOrFail($id); 
} 
4

laravel 5,2, od wewnątrz kontrolera:

use Route; 

... 

Route::current()->getParameter('id'); 

Znalazłem to przydatne, jeśli chcesz użyć tej samej metody kontrolera dla więcej niż jednej trasy z więcej niż jednym parametrem URL i być może wszystkie parametry nie zawsze są obecny lub może pojawić się w innej kolejności ...

tj. getParameter('id') udzieli prawidłowej odpowiedzi, niezależnie od pozycji {id} w adresie URL.

Zobacz Laravel Docs: Accessing the Current Route

0

Przyjechałem tu w poszukiwaniu odpowiedzi i rodzaj znaleziono go w komentarzach, więc chciał wyjaśnić, dla innych korzystających z trasy zasobów próbuje użyć tego we wniosku forma

jak wspomniano Lukas w swoim komentarzu: Biorąc kontroler zasobów Route::resource('post', ...) parametr można użyć zostanie nazwany post

To było przydatne do mnie, ale nie całkiem kompletne. Wygląda na to, że parametr będzie pojedynczą wersją ostatniej części kodu zasobu.

W moim przypadku, trasa została zdefiniowana jako $router->resource('inventory/manufacturers', 'API\Inventory\ManufacturersController');

a parametr dostępny był manufacturer (liczba pojedyncza wersja ostatniej części odgałęzienie inventory/manufacturers)

Powiązane problemy