Как в Laravel при сохранении файлов получить общий текст ошибки

Имеется контроллер FileController, который с клиента

<input type="file"
       v-on:change.prevent="upload($event.target.files)"
       multiple
/>

<script>
    async upload(files) {
        let formData = new FormData();

        for (let i = 0; i < files.length; i++)
        {
            formData.append('files[]', files[i]);
        }

        await axios.post('/file/upload', formData, {headers: {'Content-Type': 'multipart/form-data'}})
            .then(response => {})
            .catch(error => {
                this.$store.dispatch('FormErrors/fill', error.response.data.errors);
                console.log(error.response.data.errors)
            });
    },
</script>

получает файлы

public function upload (ImageRequest $request)
{
     $this->uploadMultiple($request->file('files'));
}

В теле метода создается экземпляр модели File, а файл физически записывается на диск. Здесь все работает.

В качестве валидатора использую ImageRequest, созданный стандартными средствами Laravel. В нем присутствует условие:

'files.*' => 'mimes:jpg,jpeg,png|max:1'

Если при сохранении файлов они не проходят валидацию то я вижу следующее: введите сюда описание изображения

Но хотелось бы получать один общий ответ для всех файлов в следующем виде:

введите сюда описание изображения

Каким образом возможно сделать такое? Спасибо!


Ответы (1 шт):

Автор решения: pavel

Спасибо всем, выход нашел на клиентской стороне следующим кодом:

let unique = [...new Set(Object.values(data).flat())];

В data приходит исходный объект errors. На выходе получаю одномерный массив с уникальными значениями

→ Ссылка