Yii2和处理异常

Ant*_*mov 6 php rest http yii2

我正在为我的应用程序构建REST APi,基于Yii2.所以,我遇到了处理异常的问题.例如,当有人使用错误的HTTP动词时我需要抛出405个HTTP代码,但我想发回这样的东西:

{meta:{error:{code:405,message:"Wrong method"}}}

所以,我需要捕获Exception并修改Response对象.但我怎么能这样做?在Yii中有onErroronException事件.Yii2怎么样?

Ser*_*nko 5

首先,您需要在配置的components部分中指定所需的响应格式:

    'response' => [
        'format' => yii\web\Response::FORMAT_JSON,
        'charset' => 'UTF-8'
    ]
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情:

throw new \yii\web\HttpException(400, 'Wrong method', 405);
Run Code Online (Sandbox Code Playgroud)