如何返回REST调用的验证错误?

时间:2015-06-10 08:49:43

标签: validation cakephp-3.0

我正在为我的应用程序制作REST API。它几乎可以工作,但我希望它在发生时返回验证错误。

使用CakePHP 2.x我看到有一个invalidFields method,但它不再存在Cake3了。相反,我看到Form类中有errors method,但我不知道如何使用它。

这是我在Users / json / add.ctp文件中的内容:

NSArray arrayWithContentsOfFile

正如我所说它不起作用(我知道Form可能在这里使用了Form,但我甚至不知道我是否在正确的道路上)......

结果如下:

<?php
$echo = [
    'errors' => $this->Form->errors(),
    'user' => $user
];

echo json_encode($echo);

显示所有表单错误的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

这就是我要做的,检查控制器中的验证错误并将它们发送到序列化视图

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
}