生成 slug 之后路由发生 bug ?

首先声明本地没有路由缓存。
当点击编辑的时候,只见页面刷新,没有进入到编辑页面,测试一番发现始终走的 topics.show 这个路由。

Route::resource('topics', 'TopicsController', ['only' => ['index', 'create', 'store', 'update', 'edit', 'destroy']]);
Route::get('topics/{topic}/{slug?}', 'TopicsController@show')->name('topics.show');

生成 slug 之后路由发生 bug ?

更纳闷儿的是这只是个别现象,有些是可以编辑的
生成 slug 之后路由发生 bug ?

按照文档 补充资源控制器 所述,应该把 topics.show 放到 resource 前面,经测试不管顺序如何,走的都是 topics.show 这个路由,也就是 topics.edit 没起作用。

以下是关键代码

public function show(Request $request, Topic $topic)
{
        if (! empty($topic->slug) && $topic->slug != $request->slug) {
            return redirect($topic->link(), 301);
        }

        return view('topics.show', compact('topic'));
}
public function edit(Topic $topic)
{
        $this->authorize('update', $topic);

        $categories = Category::all();
        return view('topics.create_and_edit', compact('topic', 'categories'));
}
public function link($params = [])
{
        return route('topics.show', array_merge([$this->id, $this->slug], $params));
 }
为了点个赞,专门注册的账号
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

我也遇到这个问题,你解决了吗?

5年前 评论

跟你相反,如果把topics.show放到资源路由前面就一直走show方法了。。放到后面去一切正常。。

5年前 评论

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