Itinéraires Laravel: la séquence compte-t-elle?
Question
Je viens de recevoir l'ebook "Premiers pas avec Laravel 4" de Raphael Saunier et j'ai essayé le tutoriel, tout en écrivant les routes Route::get in.php j'ai une erreur en disant que
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Quand j'ai écrit le code comme ça
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');
});
mais après avoir téléchargé le fichier source depuis packtpub, je vérifie que tout le code est exactement le même, mais seules les séquences sont différentes, comme ceci
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);
});
est-ce que les différences de séquence d'itinéraire comme celle-ci sont importantes sur les itinéraires.php?comment puis-je maintenant que l'erreur provient de la séquence d'itinéraire?
La solution
Oui.La séquence est définitivement importante.Une fois qu'un itinéraire correspond à votre URL actuelle, les autres itinéraires ne sont plus vérifiés.
Depuis Route::get('cats/{cat}', ...)
matchs contre cats/
+ n'importe quoi, cela inclut également cats/create
.