我正在尝试为视图使用复合slug(两个路径参数)。
方案
“John Doe”写了一本名为“Blue Pill”的书。我希望每本书的slug看起来像这样/books/john-doe-blue-pill
在路线中,我有:
Route::get('/books/{author}-{slug}', 'BookController@show')->name('show_book');
在列表页面中,我指的是每一个:
<a href="{{ route('show_book', ['author' => str_slug($book->author->name), 'slug' => $book->slug]) }}">
问题
控制器操作将这些参数打印为:author = john
和slug = doe-blue-pill
拒绝选项(及其原因)
Route::get('/books/{author}/{slug}', ...
,但我会尽量保持平衡,并将水平保持在最低限度。john-doe-blue-pill
保存到数据库作为本书的slug,但如果作者后来决定改变他们的名字(例如婚后的女作家),这会变得混乱。有什么想法吗?