0

我准备了一些注册表单(最简单的),并在我的模型中为电子邮件字段准备了一些验证:

'email' => array(
    'mail' => array(  
        'rule' => array('email', true),  
        'required' => false,  
        'message' => 'Not correct e-mail!'),  
    'unique' => array(  
        'rule' => 'isUnique',  
        'message' => 'E-mail was registered!'))

但是规则 isUnique 不起作用。
此外,我将 MySQL 字段电子邮件更改为唯一,但仍然不起作用。
我使用 CakePHP 2.3.7


问题是当我们将翻译行为与模型一起使用时。

查询:

SELECT COUNT(DISTINCT(`User`.`id`)) AS count FROM `sometable`.`users` AS `User` INNER JOIN `sometable`.`i18n` AS `I18nModel` ON (`User`.`id` = `I18nModel`.`foreign_key` AND `I18nModel`.`model` = 'User' AND `I18nModel`.`locale` = 'pl') WHERE `User`.`email` = 'kicaj@kdev.pl'

现场电子邮件未翻译。

4

2 回答 2

1

我复制了您的代码并将其粘贴到我的模型中,效果很好!!!我不认为它有任何错误。我只是在您的代码后添加了分号。这是我检查过的代码:

'email' => array(
            'mail' => array(
                'rule' => array('email', true),
                'required' => false,
                'message' => 'Not correct e-mail!'),
            'unique' => array(
                'rule' => 'isUnique',
                'message' => 'E-mail was registered!')), 

我认为会有一些其他错误!

于 2013-08-03T10:04:55.277 回答
1

尝试这个。

array(
    'email' => array(
        'notEmpty' => array(
            'rule' => 'notEmpty',
            'message' => 'Provide an email address'
        ),
        'validEmailRule' => array(
            'rule' => array('email'),
            'message' => 'Invalid email address'
        ),
        'uniqueEmailRule' => array(
            'rule' => 'isUnique',
            'message' => 'Email already registered'
        )
    )
);
于 2013-08-02T06:37:29.370 回答