Решение, предоставленное Тимом, является отличным решением, и его следует использовать, но если вы хотите внести некоторые изменения в свои данные перед рендерингом, вы также можете использовать эту опцию. Примечание: я пропустил часть модели, чтобы упростить объяснение.
Route::get('post/{slug}', 'PostsController@getSinglePost')->name('single-post');
Тогда в вашем контроллере вы можете сделать это:
public function getSinglePost($slug){
// use your DB query here using the slug into $post_data
return view('single-post')->with('post_data',$post_data);
}
Использование слага в посте - хорошая практика , но чтобы сохранить логику генерации слагов c немного чище, я бы порекомендовал иметь структуру вроде
http://example.com/<post_id>/<post_title_slug>
Это поможет вам различать посты, даже если слаг будет одинаковым [Случайно]
Надеюсь, это поможет.