slug 有 bug?

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 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';
            }
        }
1年前 评论
31_32 5个月前

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

1年前 评论

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

1年前 评论

@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';
            }
        }
1年前 评论
31_32 5个月前

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

1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!