2016-06-07 15 views
0

Ich benutze Laravel 5.2 und habe Probleme mit dem Routing. Vermeintliche Ich habe diesen Weg: http://example.com/out/parameter1/parameter2/Laravel Option Route Parameter funktioniert nicht

Parameter1 sollte während Parameter2 erforderlich sein sollte optional sein. Wenn Benutzer diese URL eingeben: http://example.com/out/parameter1/ oder diese http://example.com/out/parameter1/parameter2/, sollten sie fortfahren können. Nach der Eingabe werden sie auf die Homepage umgeleitet: http://example.com/out/.

Hier ist meine Route:

Route::get('out/{param1}/{param2?}', '[email protected]']); 
Route::get('out/', '[email protected]']); 

Der Controller:

public function out($param1, $param2 = '', Request $request) { 
    // logic here 
} 

Der Fehler, den ich habe, ist dies immer: Argument 3 passed to App\Http\Controllers\MyController::out() must be an instance of Illuminate\Http\Request, none given

ich bereits geben Sie einen Standardwert für param2 auf die Methode.

+0

Prüfung mit Ihrem Router. ändere Route :: get ('out/{param1}/{param2?}', 'MyController @ out']); zu Route :: get ('out/{param1}/{param2}', 'MyController @ out']); –

+0

@MansoorH, es funktioniert nicht, da ich einen Fehler 404 erhalte. Außerdem sollte "param2" optional sein. – basagabi

+0

Was können die möglichen Werte des dritten Parameters sein? Definieren Sie bitte –

Antwort

1

Antrag Instanz muss die erste

public function out(Request $request, $param1, $param2 = '') 
{ 
    // logic here 
} 

Docs sein: https://laravel.com/docs/5.2/controllers unter Method Injection

+0

das hat funktioniert !!!! Vielen Dank!! Ich kann dies immer noch nicht als die richtige Antwort akzeptieren, da es mich ein paar Minuten erfordert. Ich werde dies in einer Weile markieren :) – basagabi

Verwandte Themen