【问题标题】:cakephp 2.4 isUnique validation not workingcakephp 2.4 isUnique 验证不起作用
【发布时间】:2014-06-07 05:27:40
【问题描述】:

我的模型中有以下代码。

'uniqueNameRule' => array(
                'rule' => 'isUnique',
                'required' => true,
                'allowEmpty' => false,
                'on' => 'create', // here
                'last' => false,
                'message' => 'name already exists'
            )

上面的代码验证了字段名称,但是有一个问题,当我尝试插入新名称时它没有保存它,这意味着每次都会显示验证消息。

我试图弄清楚这一点,发现 'on' => 'create', 正在制造问题。请帮我解决这个问题。

【问题讨论】:

    标签: validation cakephp-2.0


    【解决方案1】:

    确保您以正确的方式设置验证:

    public $validate = array(
        'column_name' => array(
            'uniqueNameRule' => array(
                'rule' => 'isUnique',
                'required' => true,
                'allowEmpty' => false,
                'on' => 'create', // here
                'last' => false,
                'message' => 'name already exists'
            )
        )
    );
    

    'on' => 'create', 行告诉 cakePhp,只有在创建新寄存器时才必须执行验证。如果您要更新现有寄存器,则根本不会执行验证。

    此外,请检查验证错误是否未在另一个验证块上运行,因为您设置了 'last' => false,这意味着尽管此规则失败,验证仍将继续。

    【讨论】:

      【解决方案2】:

      如果您在验证时遇到了 isUnique 规则。您可以使用 Multivalidatable 行为。以下是完整的使用示例,请访问以下链接。

      http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model

      谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多