遇到CakePHP数据验证问题

时间:2012-01-31 19:08:50

标签: cakephp validation

我目前通过使用cakePHP数据验证遇到了一些问题。

我尝试使用带有参数'on'=>的规则'创造'但它似乎没有奏效。 我的目标是在创建用户期间检查,检查邮件是否已存在于我的数据库中。

但是当它是一个编辑时,我不想检查这个,我的意思是,如果用户不更改邮件,显然这个邮件已经存在于数据库中,但它与之前的相同。

所以我不想检查邮件是否没有被更改。

'mail' => array(
                'valid_mail'    => array(
                    'rule'      => array('email', true),
                    'message'   => 'Veuillez insérer un email valide.'
                ),
                'isUnique_mail' => array(
                    'rule'      => 'isUnique',
                    'on'        => 'create',
                    'message'   => 'Ce mail est déjà utilisé.'
                )
            )

希望你们理解我的问题。

1 个答案:

答案 0 :(得分:2)

您的部分问题可能是您没有指定需要使用$this->Model->id = $id保存的记录的ID,因此当您调用save(或saveAll)函数时,它试图插入一条记录。

isUnique验证函数实际上会在更新时过滤掉当前记录的ID(如果已使用$this->Model->id设置)。您可以在bottom of the function(第2446行)中看到这一点。

就个人而言,我会一直保留isUnique验证,以防止用户将电子邮件更改为已注册后已存在的电子邮件。