首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cakephp 3.0中验证字段是否唯一

在cakephp 3.0中验证字段是否唯一
EN

Stack Overflow用户
提问于 2015-07-11 11:21:12
回答 5查看 13K关注 0票数 6

如何验证一个字段在cakephp 3.0中是唯一的?API中似乎没有列出验证函数。

EN

回答 5

Stack Overflow用户

发布于 2015-07-11 16:49:43

您希望使用规则validateUnique。例如,要检查电子邮件地址在UsersTable上是否唯一,请执行以下操作:-

代码语言:javascript
复制
public function validationDefault(Validator $validator)
{
    $validator->add(
        'email', 
        ['unique' => [
            'rule' => 'validateUnique', 
            'provider' => 'table', 
            'message' => 'Not unique']
        ]
    );

    return $validator;
}

详细信息可以在the API docs中找到。

票数 19
EN

Stack Overflow用户

发布于 2017-04-07 08:25:52

你必须在你的桌子上使用cake的ORM中的规则...

将此代码添加到UsersTable顶部的名称空间之后

代码语言:javascript
复制
use Cake\ORM\Rule\IsUnique;

然后通过将规则放在公共函数中来准备应用于您的字段的规则

代码语言:javascript
复制
public function buildRules(RulesChecker $rules){
        $rules->add($rules->isUnique(['email']));
        return $rules;
    }

有关RULES的更多信息,请参阅cakephp文档

票数 6
EN

Stack Overflow用户

发布于 2015-07-17 19:24:03

验证提供程序可以是对象或类名。如果使用类名,则方法必须是静态的。要使用‘default’以外的提供程序,请确保在您的规则中设置provider密钥:

代码语言:javascript
复制
// Use a rule from the table provider
$validator->add('title', 'unique', [
    'rule' => 'uniqueTitle',
    'provider' => 'table'
]);

有关更多详细信息,请参阅CakePHP3参考书中的Adding Validation Providers部分。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31353085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档