Laravel Routes: Reihenfolge ermitteln?
Frage
Ich habe gerade "Erste Schritte mit Laravel 4" E -Book von Raphael Saunier und ausprobiert das Tutorial, während er die Route geschrieben hat :: In Routes.php habe ich einen Fehler gemacht, das gesagt hat, dass
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Als ich den Code so geschrieben habe
Route::get('cats/{cat}', function($cat){
return View::make('cats.single')->with('cat', $cat);
});
Route::get('cats/create', function() {
$cat = new Cat;
return View::make('cats.edit')
->with('cat', $cat)
->with('method', 'post');
});
Aber nachdem ich die Quelldatei von packtpub heruntergeladen habe, prüfe ich, ob der gesamte Code genau gleich ist, aber nur die Reihenfolge ist unterschiedlich, so wie hier
Route::get('cats/create', function() {
$cat = new Cat;
return View::make('cats.edit')
->with('cat', $cat)
->with('method', 'post');
});
Route::get('cats/{cat}', function($cat){
return View::make('cats.single')->with('cat', $cat);
});
Sind Unterschiede in der Routensequenz wie diese in der Datei „routes.php“ von Bedeutung?Wie kann ich jetzt feststellen, dass der Fehler von der Routensequenz herrührt?
Lösung
Ja.Die Reihenfolge ist definitiv wichtig.Sobald eine Route mit Ihrer aktuellen URL übereinstimmt, werden die restlichen Routen nicht mehr überprüft.
Seit Route::get('cats/{cat}', ...)
Spiele gegen cats/
+ alles, was es auch beinhaltet cats/create
.