Codeigniter - отображение отдельного сообщения об ошибке для полей массива - PullRequest
5 голосов
/ 08 декабря 2011

Есть множество клиентов, каждый с индивидуальными деталями. Вот очень простой пример.

<input type="text" name="customer_names[]" />

В codeigniter требуется каждое имя_пользователя
$this->form_validation->set_rules('customer_names[]','Customer Names','required');

Если какое-либо из имен клиентов пустое, validation_errors(); показывает одно сообщение для всего массива.

Как получить отдельные сообщения об ошибках для этого клиента?

ПРИМЕЧАНИЕ: echo form_error('customer_names[0]'); - это то, чего я пытаюсь достичь, когда customer_name 0 оставлено пустым.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Глядя на документацию Проверка формы , в частности, Использование массивов в качестве имен полей , я думаю, что вам нужно явно указать свои входные данные, включив индекс вимя, чтобы заставить form_error() метод работать так, как вы хотите.

Таким образом, чтобы form_error('customer_names[0]') работал, на самом деле должен быть вход с именем customer_names[0].

0 голосов
/ 25 апреля 2013

У меня была та же проблема с CodeIgniter 2.1.3 . Я решил это так:

Ввод:

<input type="text" name="customer_names[0]" /><br> <input type="text" name="customer_names[1]" /><br> ...

Форма проверки:

$this->form_validation->set_rules('customer_names[0]','Customer Names','required');<br> $this->form_validation->set_rules('customer_names[1]','Customer Names','required');<br> ...

Ошибки отображаются следующим образом:

echo form_error('customer_names[0]');<br> echo form_error('customer_names[1]');<br> ...

...