cakephp 3添加了唯一约束

时间:2016-01-16 15:09:54

标签: validation cakephp cakephp-3.x validationrule

我尝试了以下操作,为我的模型添加了一个独特的验证规则:

$validator
            ->requirePresence('pseudonym', 'create',['rule' => 'isUnique'])
            ->notEmpty('pseudonym');

现在我没有收到任何错误。如果我添加数据库约束,我只会收到数据库错误:

  

完整性约束违规:1062重复录入' Stella'为了钥匙   '假名'

如果我添加:

$validator
        ->add('pseudonym','unique',['rule' => 'validateUnique']);

我得到以下异常:

  

未找到方法validateUnique

那么它如何与cakephp 3一起使用?

2 个答案:

答案 0 :(得分:2)

CakePHP有一个Rule类,允许您定义唯一字段http://book.cakephp.org/3.0/en/orm/validation.html#creating-unique-field-rules

use Cake\ORM\Rule\IsUnique;

// A single field.
$rules->add($rules->isUnique(['email']));

// A list of fields
$rules->add($rules->isUnique(['username', 'account_id']));

答案 1 :(得分:1)