#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]
то, что мне придется изменить правила массива вручную. Этот ответ не помогает.