Bonjour,

Voila je rencontre un petit problème avec mon code. Sur laravel 5.3 j'ai mis en place une route pour acceder à un produit (site catalogue)
La route :

 Route::get('/catalogue/{category-parent}/{category-child}/{id}-{slug}/', ['as' => "produit", 'uses' => 'productCtrl@show'])
    ->where('category-parent', "[a-zA-Z\-]+")->where('category-child', "[a-zA-Z\-]+")->where('id', "[0-9]+")->where('slug', "[a-zA-Z\-]+");

et voici l'url d'accès :

http://domaine.fr/catalogue/category/subcat/2-produit-test

Et j'obtiens l'erreur

NotFoundHttpException in RouteCollection.php line 161:

Au niveau de mon ctrl, rien d'exceptionnel pour le moment,

   public function show($category, $category_child, $id, $slug = null)
    {
       $product = Product::findOrFail($id);
        return view('site.catalogue.product', compact('product'));        
    }

J'imagine que le pb doit être tout con, mais j'ai beau regarder mon code x fois, je le vois, un oeil externe le verra peut être du premier coups..
merci de votre aide

3 réponses


betaWeb
Réponse acceptée

Salut,

Tu as vérifié que tous les arguments soient bien définis ? Ton controller s'appelle bien 'productCtrl' et non 'productController' par ex. ? Tu n'aurais pas oublié un 's' au mot 'product' ?

PS: tu peux passer un tableau associatif en argument de la méthode where(), c'est plus propre (https://laravel.com/docs/5.3/routing#parameters-regular-expression-constraints) ;)

Bonjour
merci de ta réponse !

Je viens de controler mes arguments! en effet dans l'url je faisait passer {category-parent}/{category-child} et dans le controller je récupéré category et category_child ;
du coups j'ai fais correspondre les deux et mtn ça marche !

et merci pour l'astuce du tableau en where c'est vrai que c'est plus propre !
merci de ton aide !

Avec plaisir, content d'avoir pu t'aider :)