我想“保存”模型以运行验证,但不将其写入数据库

时间:2012-05-14 13:45:36

标签: php cakephp cakephp-2.1

我一直在寻找如何做到这一点的解决方案,但我最接近解决方案的是你的模型,

public function beforeSave() {
    parent::beforeSave();

    if(!isset($this->data["Model"]["confirm"])) {
        return false;
    }
   }

在控制器中只需:

        $this->Model->save($this->request->data);
        if($this->Model->validates()) {
            $this->render("confirm");
        } else {
            $this->Session->setFlash(__('The model could not be saved. Please, try again.'));
            // now we can render
            $this->render("index");
        }

这种方法的问题是它会显示两次错误信息,有没有更好的方法呢?或者我应该以hackish方式执行此操作并找到一种方法来删除显示两次的错误消息。

1 个答案:

答案 0 :(得分:1)

我应该更深入地研究文档:答案在于http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html

感谢@ dm03514指示我查看文档而不是API(我已经阅读了几天而没有找到真正的答案)!