【问题标题】:CakePHP 2.x: Validate model contains at least one of its associationsCakePHP 2.x:验证模型至少包含一个关联
【发布时间】:2014-03-25 18:53:53
【问题描述】:

大家好,这听起来可能很傻,但我不明白解决此案例的最佳方法是什么:

我有一个模型 POST,它与另一个名为 FILE 的模型相关联。一个帖子有很多文件,一个文件属于一个帖子。问题是我想在创建时验证每个 POST 至少包含一个文件。

到目前为止,我在 POST 的 beforeSave 方法中尝试过这个:

    public function beforeSave($options = array()) {
        if (isset($this->data[$this->alias]['File'])) {
            if (count($this->data[$this->alias]['File']) == 0) {
                $this->invalidate('File', "Postmust include at least one file.", false);
                return false;
            }
        }
        return true;
    } 

不幸的是,它不起作用。任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: php validation cakephp cakephp-2.0


    【解决方案1】:

    如果 File 已发送,则存在数量为 1 或更大,如果 File 未发送,则它可能在您的情况下返回 false。

    我建议这样:

    public function beforeSave($options = array()) {
        if (empty($this->data[$this->alias]['id'])) {
                    if (count($this->data[$this->alias]['File']) == 0) {
                        $this->invalidate('File', "Postmust include at least one file.", false);
                        return false;
                    }
                }
            return parent::beforeSave($options);
        }
    

    这将在您创建尚未保存 id 的新记录时起作用。我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多