0
我使用Codeigniter 3.x表單驗證回調方法進行組合修剪,並且需要驗證字段。 問題是,當我管它們:trim | required | callback_some_method時,回調方法似乎優先於trim和required,並顯示其錯誤消息。 有關於此的任何想法?Codeigniter表單驗證回調規則問題
編輯: 這是規則:
$this->form_validation->set_rules('new_password', 'New Password', 'trim|required|min_length[8]|callback_password_check');
這是password_check方法:
function password_check($pwd) {
$containsLetterUC = preg_match('/[A-Z]/', $pwd);
$containsLetterLC = preg_match('/[a-z]/', $pwd);
$containsDigit = preg_match('/\d/', $pwd);
$containsSpecial = preg_match('/[^a-zA-Z\d]/', $pwd);
if (!($containsLetterUC && $containsLetterLC && $containsDigit && $containsSpecial)) {
$this->form_validation->set_message('password_check', '{field} must contain UPPERCASE and lowercase letters, digits, and special characters.');
return FALSE;
}
return TRUE;
}
的方法應該返回FALSE,但只要需要的是我的自定義前規則並且該字段爲空,它應該在必填字段消息處停止,而不是自定義方法消息。
這往往表明'some_method'返回false。 'trim'永遠不會返回false,如果'required'返回false'some_method'將不會運行。沒有看到'some_method'的代碼很難提供建議。 – DFriend