在Laravel
中,我们可以通过以下方法检查请求方法:
Route::any('getToken', 'TransactionController@getPaymentToken');
public function getPaymentToken(Request $request)
{
if ($request->isMethod('post')) {
echo json_encode(['code' => '-200', 'message' => "Bad Request Method"]);
return;
}
}
现在,我尝试在Lumen
上执行此方法,但我收到此错误:
Call to undefined method Laravel\Lumen\Application::any()
我的测试:
$app->any('getToken', 'TransactionController@getPaymentToken');
public function getPaymentToken(Request $request)
{
if ($request->isMethod('post')) {
echo json_encode(['code' => '-200', 'message' => "Bad Request Method"]);
return;
}
}
我想处理错误的用户请求,并且我不希望用户收到lumen
错误,例如粘贴的错误。
答案 0 :(得分:2)
Lumen不支持any
请求方法。您可以单独定义它们:
foreach ([
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS',
] as $method) {
$app->addRoute($method, 'getToken', 'TransactionController@getPaymentToken');
}
答案 1 :(得分:1)
Lumen没有$app->any()
方法。它使用FastRoute
代替Illuminate/Routing
。
如果需要,您可以安装Illuminate/Routing
。如果您不允许$app->get()
请求,为什么不使用POST
?