У меня есть несколько файловых вводов
<input name="test[]" type="file">
<input name="test[]" type="file">
<input name="test[]" type="file">
Я хочу проверить, если количество загруженных файлов не превышает 2.
Мое правило проверки
'test.*' => 'bail|required|max_files_allowed:2|mimetypes:image/jpeg,image/gif,image/png,max:5000'
Мое правило проверки:
Validator::extend('max_files_allowed', function ($attribute, $value, $parameters, $validator) {
//$attribute = "test.0"
$field_name = explode(".",$attribute)[0];
$files = $validator->getData()[$field_name];
return (count($files) <= $parameters[0]) ? true : false;
},"You reached the max number of files allowed.");
Это пример \Log::info($validator->getData())
array (
'test' =>
array (
0 =>
Illuminate\Http\UploadedFile::__set_state(array(
'test' => false,
'originalName' => '2018-05-23_1421.png',
'mimeType' => 'image/png',
'size' => 50101,
'error' => 0,
'hashName' => NULL,
)),
1 =>
Illuminate\Http\UploadedFile::__set_state(array(
'test' => false,
'originalName' => '2018-07-26_1752.png',
'mimeType' => 'image/png',
'size' => 105617,
'error' => 0,
'hashName' => NULL,
)),
),
)
Когда мое правило проверки не выполняется, оно печатает несколько сообщений об ошибках.
Я предполагаю, что это потому, что он запускает правило проверки для каждого элемента в массиве.
Что мне делать, чтобы сообщение об ошибке отображалось только один раз?
Или мой подход к подсчету числа отправленныхневерные файлы?