自定义Laravel中的"method is not supported for this route"错误处理


Route::post('order', 'OrderController@store')->name('order');

当我浏览到URLhttp://127.0.0.1:8000/order时,它显示错误:

此路由不支持GET方法。支持的方法:POST。

这是正确的。

但是我想将用户重定向到主页,而不是显示此错误。

首先要注意的是,您试图做的事情似乎是对Laravel的反模式应拒绝使用错误方法访问路由

我目前不知道如何更改处理错误方法错误的默认方式,我也不建议这样做。但你可以绕过它:

修补

方法1

保持你的路线文件干净,但更改原始路线线,并在控制器方法的开头添加一些线

Route::match(['get', 'post'], 'order', [OrderController::class, 'store'])->name('order');
public function store(Request $request)
{
if ($request->isMethod('get')) {
return to_route('home');
}
// ...

方法2

保持控制器清洁,但在路线文件中添加一行

Route::get('order', fn () => to_route('home'));

相关内容

最新更新