Bonjour all :)

Je migre actuellement un module "blog" d'un code "fait main" vers Laravel.

Comme il y a déja une tonne d'articles, je voudrais créer des url "propres" du genre
news/le-titre-sluggjé

Mais comme il y a beaucoup de titres, pour éviter les problemes de doublons, je voudrais faire ceci
news/le-titre-sluggué-{id}

Ma vue donne ça

{{ route("news.front.show", [str_slug($new->titre), $new->id ] ) }}

Mon controller

    public function show($titre, $id)
    {
        echo "Titre = $titre et id =  $id";
    }

Et ma route

Route::get('/news/{titre}-{id}')
    ->uses('NewsController@show')
    ->where('id', '[0-9]+')
    ->name('news.front.show');

J'ai testé la version avec et sans "where" mais le résultat est le meme, a savoir:

Sorry, the page you are looking for could not be found.

1/1
NotFoundHttpException in RouteCollection.php line 161:

Par contre, le même code fonctionne si j'utilise le "_" pour séparer le tittre de l'id...
Ca fonctionne même avec "le-titre:id" ...

Simplement, j'aurai voulu faire fonctionner le systeme avec un tiret. Je suis pas convaincu des autres résultats aux yeux de Google...

Au pire, si c'est pas jouable, quel caractere de séparation me conseilleriez vous ? :)

Merci beaucoup

Aucune réponse