Php slim框架方法不允许使用中间件处理异常

Php slim框架方法不允许使用中间件处理异常,php,exception,exception-handling,request,slim,Php,Exception,Exception Handling,Request,Slim,我正在slim框架上制作一个api,我有一些方法,比如 $app->group('/api', function() use ($app){ $app->post('/login', '\App\Controllers\Api\Auth\AuthController:postSignIn'); $app->post('/register', '\App\Controllers\Api\Auth\RegisterController:postRegister'

我正在slim框架上制作一个api,我有一些方法,比如

$app->group('/api', function() use ($app){

    $app->post('/login', '\App\Controllers\Api\Auth\AuthController:postSignIn');

    $app->post('/register', '\App\Controllers\Api\Auth\RegisterController:postRegister');

});
如果我对任何链接使用get请求,我会得到这个“方法不允许”异常

我想在中间件中处理这个异常。有可能吗?我该怎么办

我想学习编写和使用中间件


请帮助我…

您可以像此函数一样为该路线添加一个middellare函数

$GetHandeler=function($req,$res,$next){
if($res->isGet()){

return $res->getBody()->write("Get Method not allowed");
}
if($res->isPost())
$res=$next($req,$res);
return $res; 
};
之后,您可以像这样将此功能添加到路线中

$app->group('/api', function() use ($app){

    $app->post('/login', '\App\Controllers\Api\Auth\AuthController:postSignIn');

    $app->post('/register', '\App\Controllers\Api\Auth\RegisterController:postRegister');

})->add($GetHandeler);

您可以为该路线添加一个middellare函数,如下所示

$GetHandeler=function($req,$res,$next){
if($res->isGet()){

return $res->getBody()->write("Get Method not allowed");
}
if($res->isPost())
$res=$next($req,$res);
return $res; 
};
之后,您可以像这样将此功能添加到路线中

$app->group('/api', function() use ($app){

    $app->post('/login', '\App\Controllers\Api\Auth\AuthController:postSignIn');

    $app->post('/register', '\App\Controllers\Api\Auth\RegisterController:postRegister');

})->add($GetHandeler);
你说“在中间件中处理这个异常”是什么意思?你到底想做什么?中间件与此
方法不允许的
异常有什么关系?您说“在中间件中处理此异常”是什么意思?你到底想做什么?中间件与此
方法的关系是什么?不允许
异常?