4 回答
TA贡献1789条经验 获得超10个赞
您的两个路由 URI 模式相同,因此您需要在路由之前定义路由resource
:
Route::get('/admin/users/{user}/show', 'UsersController@show')->name('users.show'); Route::resource('/admin/users', 'UsersController')->except(['show']);
TA贡献2041条经验 获得超4个赞
我找到了这个问题的解决方案
编辑这个文件:
/app/Exceptions/Handler.php
添加这一行
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
和
public function render($request, Throwable $exception)
{
if ($exception instanceof MethodNotAllowedHttpException)
{
abort(404);
}
return parent::render($request, $exception);
}
TA贡献1818条经验 获得超11个赞
这是因为您的路线不是 404 错误,就像您在::resource
创建路线时使用的那样,它使用show()
与update()
和destroy()
方法相同的路线,但使用不同的请求动词。
GET /photos/{photo} PUT/PATCH. /photos/{photo} DELETE /photos/{photo}
在文档中了解更多相关信息https://laravel.com/docs/7.x/controllers#resource-controllers
当您指定except(['show'])
要删除 get 路由时,但 PUT/PATCH 和 DELETE 方法的路由仍然存在。
TA贡献1869条经验 获得超4个赞
尝试替换except(['show'])
为
->only(['index', 'create', 'store', 'update', 'destroy'])
这对你的情况来说效果很好。
- 4 回答
- 0 关注
- 113 浏览
添加回答
举报