如何验证一个字段在cakephp 3.0中是唯一的?API中似乎没有列出验证函数。
发布于 2015-07-11 16:49:43
您希望使用规则validateUnique。例如,要检查电子邮件地址在UsersTable上是否唯一,请执行以下操作:-
public function validationDefault(Validator $validator)
{
$validator->add(
'email',
['unique' => [
'rule' => 'validateUnique',
'provider' => 'table',
'message' => 'Not unique']
]
);
return $validator;
}详细信息可以在the API docs中找到。
发布于 2017-04-07 08:25:52
你必须在你的桌子上使用cake的ORM中的规则...
将此代码添加到UsersTable顶部的名称空间之后
use Cake\ORM\Rule\IsUnique;然后通过将规则放在公共函数中来准备应用于您的字段的规则
public function buildRules(RulesChecker $rules){
$rules->add($rules->isUnique(['email']));
return $rules;
}有关RULES的更多信息,请参阅cakephp文档
发布于 2015-07-17 19:24:03
验证提供程序可以是对象或类名。如果使用类名,则方法必须是静态的。要使用‘default’以外的提供程序,请确保在您的规则中设置provider密钥:
// Use a rule from the table provider
$validator->add('title', 'unique', [
'rule' => 'uniqueTitle',
'provider' => 'table'
]);有关更多详细信息,请参阅CakePHP3参考书中的Adding Validation Providers部分。
https://stackoverflow.com/questions/31353085
复制相似问题