0

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

我研究了自定义验证方法,但问题是我必须一次将所有数据发送到 API,并且我会立即返回所有错误(计费信息)。

4

3 回答 3

0

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

但是,如果没有看到实际代码,就无法告诉您更多信息。查看烘焙模板以及它是如何正确完成的。那么您的问题会立即自行解决。

于 2012-06-09T20:36:14.323 回答
0

也许您在错误验证后从数据库中设置了 $this->request->data ?仅在 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.');
        }
    }
}
于 2012-06-10T13:53:47.767 回答
0

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

$this->Model->set($this->data); if($this-Model->validates()) { /* Call Api / if errors /将 $this-Model->validationErrors 设置为与蛋糕验证相同的格式。否则重定向到成功页面。}

于 2013-11-08T12:06:06.487 回答