如何解决Laravel:错误未显示
我在laravel中使用资源,我想为(显示)操作设置一条自定义uri路线,我的路线是:
Route::resource('/admin/users','UsersController')->except(['show']);
Route::get('/admin/users/{user}/show','UsersController@show')->name('users.show');
我正在检查测试网址,但在此路由中未显示错误404 例如:
http://127.0.0.1:8000/admin/users/test
显示此错误
The GET method is not supported for this route. Supported methods: PUT,PATCH,DELETE.
当我删除除(['show'])以外的代码时,我的代码工作正常,并显示404错误 但是我的路线清单显示了两条路线以进行表演
| | GET|HEAD | backend/users/{user} | backend.users.show
| | GET|HEAD | backend/users/{user}/show | backend.users.show
解决方法
您的两个roure URI模式都相同,因此您需要在resource
路由之前定义路由:
Route::get('/admin/users/{user}/show','UsersController@show')->name('users.show');
Route::resource('/admin/users','UsersController')->except(['show']);
,
这是因为您的路由不是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'])
时,您要删除的获取路线,但该路线对于PUT / PATCH和DELETE方法仍然存在。
尝试将 ->only(['index','create','store','update','destroy'])
替换为
47GB
在您的情况下可以正常工作。
,我找到了解决这个问题的方法
编辑此文件:
/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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。