2016-10-25 4 views
8

Sowohl in Laravel 4.2 als auch in Laravel 5.3 gibt es eine Option zur Verwendung impliziten Controllers. Die Syntax ist für beide Versionen gleich.Wie übergibt man Parameter an impliziten Controller in Laravel 5?

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

So wird die URL sein:

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

In Laravel 4 wird die Steuerung wie folgt aussehen:

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

jedoch in Laravel 5, die GET-Eingang zu erhalten, ist es nimmt einen Parameterplatz auf, also habe ich versucht, etwas in der Art zu machen:

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

Die URL gibt jedoch The site can't be reached zurück. Ich habe versucht, die Position zu wechseln,

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

Es funktioniert nicht. Ich weiß, dass ich die Zeile Route::get('myroute/function-name/{$parameter1}/{$parameter2}', '[email protected]') der Routendatei hinzufügen kann, aber zusätzlich explizit in der Routendatei angeben, gibt es einen Standardweg dazu?

Antwort

0

Sie können ::controller nicht mehr verwenden, daher müssen Sie explizite Routen für Laravel 5-Apps erstellen und es gibt keine Standardmethode, um das zu tun, was ::controller in 4.2 getan hat. Sie können Resource controllers betrachten, die Ihnen erlauben, einige implizite Routen für CRUD zu verwenden.

Das Laravel-Ressourcen-Routing weist einem Controller die typischen "CRUD" -Routen mit einer einzelnen Codezeile zu.

+0

Wie zeigt diese Linie Route :: Controller nicht mehr funktioniert? In der Tat verwende ich Route :: Controller und es funktioniert gut außer dem Teil der Übergabe Parameter. – cytsunny

+0

In 5.3 gibt es den Fehler "Methodencontroller existiert nicht". –

1

Bei expliziten Routen sollte es {parameter} statt {$parameter} sein. so,

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

Es scheint, dass Sie Laravel beherrschen. Ich brauche deine Hilfe. Schau hier: http://stackoverflow.com/questions/41047583/how-to-add-dynamic-dropdown-list-column-on-laravel-5-3-registration –

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

Wenn Sie php Handwerker Route dann tun: Liste finden Sie eine Liste aller Ihrer Routen sehen.

Verwandte Themen