【问题标题】:how can I return the validation errors for a REST call?如何返回 REST 调用的验证错误?
【发布时间】:2015-06-10 08:49:43
【问题描述】:

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

在 CakePHP 2.x 中,我看到有一个 invalidFields method,但在 Cake3 中不再存在。相反,我看到 Form 类中有一个 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
}

当出现所有表单错误时,显示所有表单错误的正确方法是什么?

【问题讨论】:

    标签: validation cakephp-3.0


    【解决方案1】:

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

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      相关资源
      最近更新 更多