Я включаю персонализированные сообщения об ошибках для каждого поля ввода для каждого правила проверки. Правила заключаются в следующем.CodeIgniter Правила валидации не работают
$config = array(
'firstname' => array(
'trim' => array(
'label' => 'First Name',
'rule' => 'trim'
),
'xss_clean' => array(
'label' => 'First Name',
'rule' => 'xss_clean'
),
'required' => array(
'label' => 'First Name',
'rule' => 'required',
'message' => 'This field is required.'
)
),
'lastname' => array(
'trim' => array(
'label' => 'Last Name',
'rule' => 'trim'
),
'xss_clean' => array(
'label' => 'Last Name',
'rule' => 'xss_clean'
),
'required' => array(
'label' => 'Last Name',
'rule' => 'required',
'message' => 'This field is required.'
)
),
'email' => array(
'valid_email' => array(
'label' => 'Email',
'rule' => 'valid_email',
'message' => 'This field should be email.'
),
'required' => array(
'label' => 'Email',
'rule' => 'required',
'message' => 'This field is required.'
)
),
'password' => array(
'match' => array(
'label' => 'Confirm Password',
'rule' => 'matches[confirm_password]',
'message' => 'These passwords don\'t match. Try again?.'
),
'length' => array(
'label' => 'Password',
'rule' => 'min_length[6]',
'message' => 'This field should\'ve atleast 6 characters.'
),
'required' => array(
'label' => 'Password',
'rule' => 'required',
'message' => 'This field is required.'
)
),
'confirm_password' => array(
'required' => array(
'label' => 'Confirm Password',
'rule' => 'required',
'message' => 'This field is required.'
)
));
foreach($config as $key => $fields) {
foreach($fields as $rule => $field) {
if(isset($field['message']) && !empty($field['message'])) {
$field['rule'] = preg_replace('/\[.*\]/', '', $field['rule']);
$this->form_validation->set_message($field['rule'], $field['message']);
}
$this->form_validation->set_rules($key, $field['label'], $field['rule']);
}
}
if ($this->form_validation->run()) {
return true;
}
return false;
Но valid_email
'min_length' и matches
правила не работают. Пожалуйста, помогите мне найти решение. Буквально тратя время на это. Работа будет более приемлемой.