我正在使用CakePHP來處理我的應用程序,我有一個用戶模型。這個用戶有一個密碼,它有一個正則表達式來驗證。 正則表達式強制用戶使用至少6個字符長的密碼,至少包含1個數字和特殊字符。CakePHP編輯用戶給出validationErrror
驗證看起來是這樣的:
'password' => array(
'ruleName' => array(
'rule' => array('custom', '/^.*(?=.{6,})(?=.*\d)(?=.*[a-zA-Z])(?=.*[@#$%^&+=]).*$/i'),
'message' => 'Password not legit',
'allowEmpty' => true
)
)
當我想修改自己的密碼,這個驗證的偉大工程。但是,當我想編輯用戶(沒有選項來更改密碼)時,$ this-> User-> save()失敗。
如果調試我的$這個 - >用戶 - > validationErrors,顯示的唯一的事情是:
array(
'password' => '*****'
)
密碼字段未在我的帖子的數據集,因此在驗證時應該根本不會發生。 當我評論這塊驗證碼時,用戶可以被保存。
有人知道我在做什麼錯嗎?
如果您不提供特殊處理,請勿在編輯中包含密碼字段。提示:http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/ – mark
@mark我沒有在編輯時加入密碼。實際上,我還在控制器中添加了這段代碼,如果它已設置,則將其從發佈數據中提取出來:if(empty($ this-> request-> data ['User'] ['password'])){未設置(這 - $>請求 - >數據[ '用戶'] [ '密碼']); } – harmjanr