2014-06-07 52 views
2

我的模型中有以下代码。cakephp 2.4 isUnique验证不起作用

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

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

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

回答

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