2014-06-07 91 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,這意味着驗證將繼續,儘管這條規則失敗的。