Laravel流明微框架处理错误的请求方法

时间:2016-02-21 07:53:08

标签: php laravel lumen

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错误,例如粘贴的错误。

2 个答案:

答案 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