Rutas de Laravel: ¿la secuencia importa?
Pregunta
Acabo de recibir el libro electrónico de "comenzar con Laravel 4" de Raphael Saunier y probé el tutorial, mientras escribía la ruta :: Get in Routes.php recibí un error diciendo eso
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Cuando escribí el código como este
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');
});
pero después de descargar el archivo fuente de packtpub, verifico que todo el código sea exactamente igual, pero solo la secuencia es diferente, así
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);
});
¿Las diferencias de secuencia de rutas como esta importan en rutas.php?¿Cómo puedo saber que el error proviene de la secuencia de ruta?
Solución
Sí.La secuencia definitivamente importa.Una vez que una ruta coincide con su URL actual, el resto de las rutas ya no se verifican.
Desde Route::get('cats/{cat}', ...)
partidos contra cats/
+ cualquier cosa, también incluye cats/create
.