slug 有 bug?

添加话题或者修改话题时,添加'''edit'或者''编辑''到标题,由于百度翻译返回是''edit'';
聪明的人应该看出来了,Totic类的link()返回的地址是http://larabbs.test/topics/{totic_id}/edit,和topics.edit路由冲突了.
导致你去查看此话题的show页面时,会被定向到编辑页面.
当然修复也很简单,我的方案是百度翻译返回是''edit''时,在后面添加符号''-'';这样就不和topics.edit路由冲突了

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

@doderic 这样对seo不友好.我这样解决的

public function saving(Topic $topic)
    {
        // XSS 过滤
        $topic->body = clean($topic->body, 'user_topic_body');
        // 生成话题摘录
        $topic->excerpt = make_excerpt($topic->body);
        // 如 slug 字段无内容,即使用翻译器对 title 进行翻译
        if (!$topic->slug) {
            $topic->slug = app(SlugTranslateHandler::class)->translate($topic->title);
            // 修复edit或者编辑的时候会跑到路由后面的问题
            // @url https://learnku.com/laravel/t/14584/slug-has-bug?#reply76507
            if (trim($topic->slug) === 'edit') {
                $topic->slug = 'edit-slug';
            }
        }
5年前 评论
31_32 4年前

确实如此,我也用了同样的解决方案,不过我没有判断翻译的结果,而是直接给所有的翻译结果都加了一个 -larabbs 的后缀。

5年前 评论
任飘渺

我和楼上的一样 加个 slug- 就OK啦

5年前 评论

@doderic 这样对seo不友好.我这样解决的

public function saving(Topic $topic)
    {
        // XSS 过滤
        $topic->body = clean($topic->body, 'user_topic_body');
        // 生成话题摘录
        $topic->excerpt = make_excerpt($topic->body);
        // 如 slug 字段无内容,即使用翻译器对 title 进行翻译
        if (!$topic->slug) {
            $topic->slug = app(SlugTranslateHandler::class)->translate($topic->title);
            // 修复edit或者编辑的时候会跑到路由后面的问题
            // @url https://learnku.com/laravel/t/14584/slug-has-bug?#reply76507
            if (trim($topic->slug) === 'edit') {
                $topic->slug = 'edit-slug';
            }
        }
5年前 评论
31_32 4年前

@等车的猪 感谢,这也是一种思路。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!