Проверка формы Codeigniter. Есть ли способ определить несколько разных %s при установке сообщений об ошибках?

Согласно документации, %s будет заменено именем поля при настройке сообщений об ошибках. .

Если вы включите %s в строку ошибки, она будет заменена «человеческим» именем, которое вы использовали для своего поля при установке правил.

Есть ли способ иметь несколько %s в строке и определять их по-разному?


person developarvin    schedule 10.11.2012    source источник


Ответы (1)


Это строка в проверке формы библиотека, которая создает сообщение об ошибке:

// Build the error message
$message = sprintf($line, $this->_translate_fieldname($row['label']), $param);
  • $line: Шаблон сообщения об ошибке, например "Поле % недействительно"
  • $this->_translate_fieldname($row['label']): Метка поля
  • $param: параметр передал функцию проверки, если таковая имеется, max_length[5] передал бы "5"

Вот и все, что делает для вас класс проверки формы. Если вам нужно больше гибкости, вам придется подготовить сообщение об ошибке самостоятельно ‹-- может быть полезно заранее с уже заполненными дополнительными переменными.

Может быть интересно расширить класс проверки формы с помощью core/MY_form_validation.php и использовать эту функциональность. К сожалению, эта строка содержится в основной функции _execute, которая очень большая и запутанная, и, глядя на нее сейчас, вам нужно перегрузить некоторые другие также функции. Я начал писать пример, но на самом деле это выглядит как рутинная работа. Возможно, вам лучше использовать:

$this->form_validation->set_message('rule_name', 'Your custom message here');

Подробнее о настройке сообщений об ошибках: http://ellislab.com/codeigniter/user_guide/libraries/form_validation.html#settingerrors

person Wesley Murch    schedule 10.11.2012