我如何 return REST 调用的验证错误?
how can I return the validation errors for a REST call?
我正在为我的应用程序制作 REST api。它几乎可以工作,但我希望它在发生验证错误时 return。
使用 CakePHP 2.x 我看到表单 class 中有一个 invalidFields method, but it's not there anymore with Cake3. I see, instead, that there is an errors method,但我不知道如何使用它。
这是我的 Users/json/add.ctp 文件中的内容:
<?php
$echo = [
'errors' => $this->Form->errors(),
'user' => $user
];
echo json_encode($echo);
正如我所说,它不起作用(我知道这里可能使用了 Form,但我什至不知道我是否走在正确的道路上)...
这是结果:
{
"message": "Missing field name for FormHelper::errors",
"url": "\/fatturazione\/api\/users.json",
"code": 500
}
当出现所有表单错误时,正确的显示方式是什么?
这就是我要做的,检查控制器中的验证错误并将它们发送到序列化视图
public function add() {
$this->request->allowMethod('post');
$data = $this->Model->newEntity($this->request->data);
if($data->errors()) {
$this->set([
'errors' => $data->errors(),
'_serialize' => ['errors']]);
return;
}
//if no validation errors then save here
}
我正在为我的应用程序制作 REST api。它几乎可以工作,但我希望它在发生验证错误时 return。
使用 CakePHP 2.x 我看到表单 class 中有一个 invalidFields method, but it's not there anymore with Cake3. I see, instead, that there is an errors method,但我不知道如何使用它。
这是我的 Users/json/add.ctp 文件中的内容:
<?php
$echo = [
'errors' => $this->Form->errors(),
'user' => $user
];
echo json_encode($echo);
正如我所说,它不起作用(我知道这里可能使用了 Form,但我什至不知道我是否走在正确的道路上)...
这是结果:
{
"message": "Missing field name for FormHelper::errors",
"url": "\/fatturazione\/api\/users.json",
"code": 500
}
当出现所有表单错误时,正确的显示方式是什么?
这就是我要做的,检查控制器中的验证错误并将它们发送到序列化视图
public function add() {
$this->request->allowMethod('post');
$data = $this->Model->newEntity($this->request->data);
if($data->errors()) {
$this->set([
'errors' => $data->errors(),
'_serialize' => ['errors']]);
return;
}
//if no validation errors then save here
}