cakephp 3 添加唯一约束
cakephp 3 add unique constraint
我尝试了以下方法来为我的模型添加一个唯一的验证规则:
$validator
->requirePresence('pseudonym', 'create',['rule' => 'isUnique'])
->notEmpty('pseudonym');
现在我没有收到任何错误。如果我添加一个数据库约束,我只会得到一个数据库错误:
Integrity constraint violation: 1062 Duplicate entry 'Stella' for key
'pseudonym'
如果我添加:
$validator
->add('pseudonym','unique',['rule' => 'validateUnique']);
我得到以下异常:
Method validateUnique not found
那么它如何与 cakephp 3 一起工作?
添加确定方法定义位置的提供商密钥
$validator
->add('pseudonym','unique',['rule' => 'validateUnique','provider' => 'table']);
见http://book.cakephp.org/3.0/en/core-libraries/validation.html#adding-validation-providers
CakePHP 有一个规则 class 允许您定义唯一字段 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']));
我尝试了以下方法来为我的模型添加一个唯一的验证规则:
$validator
->requirePresence('pseudonym', 'create',['rule' => 'isUnique'])
->notEmpty('pseudonym');
现在我没有收到任何错误。如果我添加一个数据库约束,我只会得到一个数据库错误:
Integrity constraint violation: 1062 Duplicate entry 'Stella' for key 'pseudonym'
如果我添加:
$validator
->add('pseudonym','unique',['rule' => 'validateUnique']);
我得到以下异常:
Method validateUnique not found
那么它如何与 cakephp 3 一起工作?
添加确定方法定义位置的提供商密钥
$validator
->add('pseudonym','unique',['rule' => 'validateUnique','provider' => 'table']);
见http://book.cakephp.org/3.0/en/core-libraries/validation.html#adding-validation-providers
CakePHP 有一个规则 class 允许您定义唯一字段 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']));