У меня есть форма для загрузить несколько изображений. Для каждого изображения должна быть подпись и атрибут alt для HTML. Если я попытаюсь загрузить три изображения и пропущу поля для двух из них, я получу следующее сообщение об ошибке:
Код: Выделить всё
The field 'image file' is required.
The field 'image caption' is required.
The field 'image alt' is required.
The field 'image caption' is required.
The field 'image alt' is required.
The field 'image file' is required.
Мне нужно следующее:
Код: Выделить всё
The field 'image file (item 1)' is required.
The field 'image caption (item 1)' is required.
The field 'image alt (item 1)' is required.
The field 'image caption (item 3)' is required.
The field 'image alt (item 3)' is required.
The field 'image file (item 1)' is required.
Сначала я попробовал следующее:
Код: Выделить всё
$attributes = [
'img.*.file' => 'Image file (item :* )',
'img.*.alt' => 'Image alt (item :* )',
'img.*.caption' => 'Image caption (item :* )',
];
//
$this->validate($request, $rules, [], $attributes);
Следует отметить, что я разработал код таким образом, чтобы атрибут имени HTML индексировался последовательно для всех полей (
Код: Выделить всё
img[1][alt]Я искал эту проблему и нашел то же самое вопрос здесь. Проверка полей с использованием позиции индекса, но она использует angular, а не laravel.
Как я могу получить индекс и поместить его в атрибут?Если это невозможно, есть ли другой способ добиться желаемого результата без необходимости настройки сообщений об ошибках?
Я бы хотел чтобы изменить атрибуты и сохранить сообщения об ошибках по умолчанию, предоставляемые laravel
Подробнее здесь: https://stackoverflow.com/questions/575 ... or-message
Мобильная версия