使用Crud plugin和Crud.Api
侦听器对记录进行PATCH处理时,成功的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
如果成功为假,则将返回HTTP响应代码422, 以及数据中来自模型的验证错误列表 响应主体的属性。
是否需要将插件配置为返回错误?
答案 0 :(得分:1)
我对Crud插件不太熟悉,但是该响应看起来像默认的CakePHP异常渲染器响应,因此我想您可能尚未将应用程序配置为使用Crud异常渲染器:
config / app.php
'Error' => [
'exceptionRenderer' => \Crud\Error\ExceptionRenderer::class,
// ...
],
从文档中引用:
注意:但是,如果您使用的是CakePHP 3.3+的PSR7中间件功能,将不会使用exceptionRenderer配置,而必须将config / app.php中的Error.exceptionRenderer配置设置为'Crud \ Error \如下所示的ExceptionRenderer'