cakephp 3.0 -如何返回REST调用的验证错误



我正在为我的应用程序做一个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
}

最新更新