我想更正帖子 url 中可能不正确的 slug,就像 Stack Overflow 所做的那样,如下所示:https://stackoverflow.com/questions/51413983/completely-incorrect-slug
我们以下面的url为例:
www.example.com/posts/5/some-slug-here
我的路线如下并且有效:
Route::get('/posts/{id}/{slug?}', [...]
但以下网址也有效:
www.example.com/posts/5/some-wrong-slug-here
当 url 通过 id 获取帖子时,我可以访问 slug。
我想更新 url 以使其正确。这可能不使用 Javascript 吗?
最佳答案
谢谢rkj .
通过使 slug 成为可选参数,获取帖子然后检查 url slug 是否与 post slug 匹配,我已经实现了我想要的。如果是这样,我会返回一个 View 。如果没有,我将重定向到同一路由,将 id 和正确的 slug 作为参数传递。
路线示例:
Route::get('/posts/{id}/{slug?}', 'FrontEndController@single_post')->name('single_post');
Controller 示例:
public function single_post($id, $slug = null)
{
$post = Post::find($id);
if ($slug != $post->slug)
{
return redirect()
->route('single_post', ['id' => $post->id, 'slug' => $post->slug]);
}
return view('single_post');
}
关于Laravel 可选的 Url Slug 更正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51413983/