2017-01-23 6 views

Antwort

3

Ordnen Sie Ihren Routing der statischen oben zu machen, so Laravel Routing wird die statische erste finden eher gehen als auf die /m/{game} und /m/{game?}

2

diese Route Put:

Route::get('/m/snes', '[email protected]')->name('snes'); 

Vor den anderen Routen, damit es funktioniert.

0

Sie müssen die statische Route vor den anderen Routen setzen. Wenn Laravel prüft, welche Route zu verwenden ist, wenn Sie zu m/s gehen, überprüft es die Routen, bis es eine Übereinstimmung erreicht. Also, wenn Sie haben:

Route::get('/m/{game}', '[email protected]')->name('game'); 
Route::get('/m/{game?}', '[email protected]')->name('all'); 
Route::get('/m/snes', '[email protected]')->name('snes') 

Laravel bemerkt, dass die erste Route gültig ist, da m/SNES bedeutet, dass „snes“ das sein kann {Spiel} variabel.

Wenn Sie die statische Route auf setzen, aber:

Route::get('/m/snes', '[email protected]')->name('snes') 
Route::get('/m/{game}', '[email protected]')->name('game'); 
Route::get('/m/{game?}', '[email protected]')->name('all'); 

sobald es erreicht er es merkt es ein Spiel ist. Und wenn Ihre beabsichtigte URL so etwas wie m/n64 war, sucht sie weiter, bis sie eine Übereinstimmung findet (in diesem Fall wäre es die nächste Route auf der Liste). Dies ist ein häufiges Vorkommnis bei Routing-Dateien, sogar in JS-Projekten.

Verwandte Themen