В Laravel, при валидации массива в шаблоне Blade, вы можете отображать название полей, используя метод attributes()
в классе формы.
Предположим, у вас есть массив данных $data
, который вы хотите проверить на валидность. В форме вы можете использовать массив значений в поле ввода таким образом:
<input type="text" name="data[0][name]" value="{{ old('data.0.name') }}"> <input type="text" name="data[1][name]" value="{{ old('data.1.name') }}"> <input type="text" name="data[2][name]" value="{{ old('data.2.name') }}">
При валидации этого массива данных в контроллере или форм-реквесте Laravel, вы можете указать пользовательские атрибуты для полей массива, используя метод attributes()
:
public function attributes() { return [ 'data.*.name' => 'Название' ]; }
В этом примере 'data.*.name'
- это шаблон, который указывает Laravel, что мы хотим указать атрибуты для всех элементов массива data
, а также его полей name
.
Теперь, если валидация не пройдет, ошибки будут содержать пользовательские атрибуты, которые вы указали, и вы можете отобразить их в шаблоне Blade следующим образом:
@if ($errors->has('data.*.name')) @foreach ($errors->get('data.*.name') as $error) <span class="invalid-feedback" role="alert"> <strong>{{ $error }}</strong> </span> @endforeach @endif
В данном примере мы используем $errors->has('data.*.name')
, чтобы проверить, есть ли ошибки валидации для поля name
в массиве data
. Затем мы используем $errors->get('data.*.name')
, чтобы получить массив ошибок для этого поля и отобразить их.
Таким образом, вы можете отобразить название поля при валидации массива в Laravel, используя метод attributes()
и проверку ошибок в шаблоне Blade.