CodeIgniter 3.1.9 Проверка формы - PullRequest
       79

CodeIgniter 3.1.9 Проверка формы

0 голосов
/ 08 декабря 2018

У меня проблема с проверкой формы в CI.Кажется, правило не вызывает функцию Мой код следующий:

[...]    
$this->form_validation->set_rules('last_name', 'last name','trim|required|min_length[3]|max_length[30]|callback_reserved',
    [
        'required'      => 'The %s is missed',
        'min_length'    => 'The %s must contain at least %s letters',
        'max_length'    => 'The %s must contain at max %s letters',
    ]);
[...]

function reserved($str) {
    $reserved = ['aaaa','bbbb','cccc','dddd'];
    if (in_array(strtolower($str), $reserved)) {
        $this->form_validation->set_message('reserved', 'The {field} '.$str.' is reserved');
        return false;
    } else {
        return true;
    }
}

1 Ответ

0 голосов
/ 08 декабря 2018

Вот лучший способ создать пользовательское правило проверки:

$config = array(
    'field'     => 'last_name',
    'label'     => 'last name',
    'rules'     => array('trim', 'required', array('last_name_is_reserved',
        function($str)
        {
            $reserved = ['aaaa','bbbb','cccc','dddd'];
            return (in_array(strtolower($str), $reserved)) ? TRUE : FALSE;
        }),
    ),
    'errors' => array(
        'last_name_is_reserved' => 'The {field} field is reserved.',
    ),
);
$this->form_validation->set_rules($config);
...