如果我使用API​​验证数据,如何保留表单?

时间:2012-06-09 19:52:16

标签: cakephp cakephp-2.1

通常情况下,如果我使用CakePHP的魔法并验证表单,那么它将“保留表单”,这意味着用户不必重新输入所有内容。此外,CakePHP默认标记验证失败的所有字段。我的问题是,因为我将所有表单数据发送到API,我怎么还能使用CakePHP的所有魔法呢?

我查看了自定义验证方法,但问题是我必须立即将所有数据发送到API,我会立即收到所有错误(结算信息)。

3 个答案:

答案 0 :(得分:0)

那时你做错了。 默认的“蛋糕”方式是保持表单 - 甚至(或特别是)在验证失败后

但是,如果没有看到实际代码,就无法告诉你更多信息。 看看烘焙模板以及它是如何正确完成的。 然后你的问题立即得到解决。

答案 1 :(得分:0)

也许您在错误验证后从数据库设置$ this-> request->数据?仅在GET请求中检索模型数据。在博客教程中使用它:

public function edit($id = null) {
    $this->Post->id = $id;
    if ($this->request->is('get')) {
        $this->request->data = $this->Post->read();
    } else {
        if ($this->Post->save($this->request->data)) {
            $this->Session->setFlash('Your post has been updated.');
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash('Unable to update your post.');
        }
    }
}

答案 2 :(得分:0)

如果您只是使用api来测试单个字段,那么为您的模型编写一个调用该api方法的自定义验证器。如果你的api正在验证整个模型或多个字段,你可以做一个

$这 - >模型 - >设置($这 - >数据); if($ this-Model-> validates()){       / *致电Api /        如果错误       / 以与Cake验证相同的格式设置$ this-Model-> validationErrors。        否则重定向到成功页面。 }

相关问题