Codeigniter — проверка формы

#forms #codeigniter #validation #codeigniter-form-validation

Вопрос:

Я проверяю форму в Codeigniter с помощью form_validation библиотеки и устанавливаю правила, используя массив.

Я хочу, чтобы сообщение о проверке max_length было таким:

Имя пользователя не может превышать 255 символов.

%s не может быть больше %? характер.

Проблема в том, что я получаю имя пользователя, используя %s его, но я хочу 255 , чтобы сообщение о проверке было динамически.

 $this->form_validation->set_rules('username', 'Username', 'required|max_length[255]',
    array('required' => 'You must provide a %s.','max_length' => '%s may not be greater than %?'));
 

Комментарии:

1. Несколько правил должны быть разделены трубами, верно ? И ..., 'required|max_length[255]', array(...) что ?

2. @Не паникуйте да, вы правы, несколько правил разделены трубами, ошибочно введенной запятой, но каково решение этого вопроса ?

Ответ №1:

У меня не так много очков репутации, поэтому публикую это в качестве ответа.
Это может быть достигнуто с помощью переменной

 $max_len = 100; // Set max length here 
$this->form_validation->set_rules(
        'username', 'Username', "required|max_length[$max_len]",
        array(
                'required'      => 'You have not provided %s.',
                'max_length'     => "%s may not be greater than $max_len"
        )
);
 

Ответ №2:

 $this->form_validation->set_rules(
        'username', 'Username',
        'required|max_length[255]',
        array(
                'required'      => 'You have not provided %s.',
                'max_length'     => '%s may not be greater than 255'
        )
);
 

Комментарии:

1. что делать, если я изменюсь max_length[255] на max_length[100] то, что мне придется изменить правила массива вручную. Этот ответ не помогает.