我正在为我的应用程序做一个REST api。它几乎可以工作,但我希望它在验证错误发生时返回验证错误。
与CakePHP 2。x我看到有一个invalidFields方法,但它不再存在与Cake3。我看到,相反,在Form类中有一个错误方法,但我不知道如何使用它。
这是我在我的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
}