0
私は、Codeigniter 3.xフォーム検証コールバックメソッドを組み合せトリムで使用しており、フィールドの検証に必要です。 私はそれらをパイプするときに問題があります:trim | required | callback_some_method、コールバックメソッドがトリムより優先され、必要であり、エラーメッセージを表示します。 これに関するアイデアですか?Codeigniterフォーム検証コールバックルールの問題
EDIT: これはルールです:
$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