Ошибка проверки возврата плагина CakePHP Crud - PullRequest
0 голосов
/ 19 апреля 2019

Когда PATCHing к записи с использованием плагина Crud и Crud.Api listener, успешный PATCH возвращает 200 OK с пустым массивом данных в ответе.

{
    "success": true,
    "data": []
}

Когда после PATCH происходит сбой проверки, возвращается 422 Unprocessable Entity со следующим ответом:

{
    "message": "A validation error occurred",
    "url": "\/admin\/users\/edit\/4.json",
    "code": 422,
    "file": "\/app\/vendor\/friendsofcake\/crud\/src\/Listener\/ApiListener.php",
    "line": 189
}

, но я ожидал что-то вроде:

{
    "success": false,
    "data": [
       "errors": [...]
    ]

}

https://crud.readthedocs.io/en/latest/listeners/api.html#http-put-edit

Если успех равен false, будет возвращен HTTP-код ответа 422, а также список ошибок проверки из модели в свойстве data тела ответа.

Нужно ли настраивать плагин для возврата ошибок?

1 Ответ

1 голос
/ 21 апреля 2019

Я не слишком знаком с плагином Crud, но этот ответ выглядит как ответ по умолчанию для средства визуализации исключений CakePHP, поэтому я предполагаю, что вы, вероятно, не настроили свое приложение для использования средства визуализации исключений Crud:

конфиг / app.php

'Error' => [
    'exceptionRenderer' => \Crud\Error\ExceptionRenderer::class,
    // ...
],

Цитата из документации:

Примечание: Однако, если вы используете функцию промежуточного программного обеспечения CakePHP 3.3 + PSR7, конфигурация exceptionRenderer не будет использоваться, и вместо этого вам придется установить конфигурацию Error.exceptionRenderer в config / app.php на «Crud \ Error \» ExceptionRenderer 'следующим образом

См. Crud Docs> Слушатели> API> Обработчик исключений

...