Laravel 可选的 Url Slug 更正

标签 laravel

我想更正帖子 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/

相关文章:

php - Laravel 5 - 验证规则中 "sometimes"的真正含义

javascript - 如何将数组从 View 传递到 Controller ?使用 Laravel

php - Laravel 5.0 扩展了 'Logout' 功能

php - 在 Laravel 中创建搜索工具

php - Laravel 什么时候清除缓存?

php - 拉维尔 4 : Prevent form re-submissions

apache - Laravel Ubuntu 16.04 返回状态码 500

php - Laravel 5 Hasmanythrough 逆向查询

laravel - 连接到本地 mysql 服务器的 Docker 容器化 Laravel 应用程序

php - 用laravel在mysql中插入多维数组json