【问题标题】:Override resource controller method route not found未找到覆盖资源控制器方法路由
【发布时间】:2018-01-06 20:47:36
【问题描述】:

我想为 show 声明一个带有两个参数的 get 路由。我有一个这样的资源控制器:

Route::resource('posts', 'PostsController', ['except' => ['edit', 'delete']]);

如果可能,我不想更改该行,所以我在上面添加:

Route::get('posts/{id}/{userId}', 'PostsController@show');
Route::resource('posts', 'PostsController', ['except' => ['edit', 'delete']]);

但我仍然得到:

错误:找不到“X/posts/1/1”路线。

其他测试通过。 我还尝试将 route:get 放在下面here 或添加 show in exceptions。

【问题讨论】:

    标签: php laravel-5.4 laravel-routing


    【解决方案1】:

    这样试试

    Route::get('/posts', 'PostsController@show');
    

    使用网址

    X/posts?id=1&userId=11
    

    【讨论】:

      【解决方案2】:

      看来我的代码是正确的,问题出在 URi 的某个地方,正确的是这个:

      $this->get('/X/posts/' . $post['id'] . '/'. $post['userId'], $this->headers($this->user))
      

      【讨论】:

      • 我认为或删除了这个问题,因为它是一个 uRi 小错字,但我认为它可能对其他用户仍然有用。
      【解决方案3】:

      更改顺序并尝试:

      Route::resource('posts', 'PostsController', ['except' => ['edit', 'delete']]);
      Route::get('posts/{id}/{userId}', 'PostsController@show');
      

      【讨论】:

      • 我的顺序对我有用
      猜你喜欢
      • 1970-01-01
      • 2016-07-12
      • 2021-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      相关资源
      最近更新 更多