cakephp 2.4是独特的验证不起作用

时间:2014-06-07 05:27:41

标签: validation cakephp-2.0

我的模型中有以下代码。

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

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

我试图找出这一点并发现'on' => 'create',正在创建问题。请帮助我谢谢。

2 个答案:

答案 0 :(得分:0)

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

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,这意味着尽管此规则失败,验证仍将继续。

答案 1 :(得分:0)

如果您在验证中发出isUnique规则。您可以使用多值可录行为。以下是完整的示例如何使用请访问以下链接。

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

由于