Yii2 rest api没有返回响应代码和状态

naC*_*eex 5 php rest yii yii2 yii2-advanced-app

我试图得到(StatusCode)响应REST api,而它只返回字段名称和错误消息,如下所示

[{"field":"Email","message":"Email \"ali@ali.ali\" has already been taken."}]
Run Code Online (Sandbox Code Playgroud)

我添加了回复

'response' => [
        'class' => 'yii\web\Response',
        'on beforeSend' => function ($event) {
            $response = $event->sender;
            if ($response->data !== null && Yii::$app->request->get('suppress_response_code')) {
                $response->data = [
                    'success' => $response->isSuccessful,
                    'data' => $response->data,
                ];
                $response->statusCode = 200;
            }
        },

    ],
Run Code Online (Sandbox Code Playgroud)

Ban*_*dan 5

试试这种方式,它对我有用:

if ("some error checking goes there") {
    Yii::$app->response->statusCode = 422;//I preferred that error code
    return [
        "data" => [
            'errors' => [
                'fieldname' => "Field Name is invalid",
            ]
        ],
    ];
}
Run Code Online (Sandbox Code Playgroud)


Vah*_*yan 0

Yii::$app->response->statusCode
Run Code Online (Sandbox Code Playgroud)

您可以在返回响应之前在操作中添加此代码