2016-10-25 52 views
8

W obu wersjach językowych: laravel 4.2 i laravel 5.3 istnieje możliwość użycia kontrolera niejawnego w trasie. Składnia jest taka sama dla obu wersji.Jak przekazać parametr do niejawnego kontrolera w Laravel 5?

Route::controller('myroute', 'myDearController'); 

Więc URL będą:

http://my.domain.com/myroute/function-name/parameter1/parameter2 

W laravel 4, regulator będzie wyglądać następująco:

//..... Some other controller related syntax ...... 
public function getFunctionName($parameter1, $parameter2) { 
    $inputs = Input::all(); 
    dd($inputs); 
} 
//..... Some other controller related syntax ...... 

Jednak w laravel 5, aby uzyskać wejście GET, to zajmuje miejsce parametrów, więc próbowałem zrobić coś takiego:

//..... Some other controller related syntax ...... 
public function getFunctionName(Request $request, $parameter1, $parameter2) { 
    $inputs = $request->all(); 
    dd($inputs); 
} 
//..... Some other controller related syntax ...... 

Jednak adres URL zwraca The site can't be reached. Próbowałem zmienić pozycję,

//..... Some other controller related syntax ...... 
public function getFunctionName($parameter1, $parameter2, Request $request) { 
    $inputs = $request->all(); 
    dd($inputs); 
} 
//..... Some other controller related syntax ...... 

To nie działa. Wiem, że mogę dodać wiersz Route::get('myroute/function-name/{$parameter1}/{$parameter2}', '[email protected]') do pliku trasy, ale poza tym, że w pliku trasy wyraźnie określono, czy jest to domyślny sposób?

Odpowiedz

0

Nie można już korzystać z , więc musisz utworzyć jawne trasy dla aplikacji Laravel 5 i nie ma domyślnego sposobu wykonania tego, co zrobił ::controller w 4.2. Możesz spojrzeć na Resource controllers, które pozwalają na użycie niejawnych tras dla CRUD.

Routing zasobów Laravel przypisuje typowe trasy "CRUD" do kontrolera za pomocą pojedynczej linii kodu.

+0

W jaki sposób linia ta wskazuje, że kontroler Route :: już nie działa? W rzeczywistości używam kontrolera Route :: i działa dobrze, z wyjątkiem części przekazywanego parametru. – cytsunny

+0

W 5.3 dadzą ci komunikat "Brak kontrolera metody nie istnieje". –

1

W przypadku jawnych tras powinno być {parameter} zamiast {$parameter}. tak,

Route::get('myroute/function-name/{parameter1}/{parameter2}', '[email protected]') 
+0

Wygląda na to, że opanowałeś laravel. Potrzebuję twojej pomocy. Zajrzyj tutaj: http://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3- registration –

0
Route::resource('myroute', 'myDearController'); 

Jeśli następnie zrobić php rzemieślnik trasy: lista zobaczysz listę wszystkich swoich tras.