Проверить максимальное количество нескольких файлов, которые можно прикрепить в Laravel Validation - PullRequest
0 голосов
/ 26 июня 2018

У меня есть форма, которая позволяет прикреплять несколько файлов.

Я проверяю форму для поля вложения следующим образом:

$this->validate($request, [

            'attachments.*' => 'mimes:jpg,jpeg,bmp,png|max:5000',
        ]);

Она работает правильно, но я также хочу разрешить толькомаксимум 3 файла для загрузки одновременно.

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Поскольку attachments является массивом, вы можете использовать правило max для проверки его максимальных элементов как 3

 $messages = [
    "attachments.max" => "file can't be more than 3."
 ];

 $this->validate($request, [

        'attachments.*' => 'mimes:jpg,jpeg,bmp,png|max:5000',
        'attachments' => 'max:3',
    ],$messages);
0 голосов
/ 26 июня 2018

Существует возможность добавить Пользовательские правила проверки в laravel.

Также вы можете попробовать что-то вроде этого:

$this->validate($request, [
    'attachments.*' => [
        'mimes:jpg,jpeg,bmp,png',
        function($attribute, $value, $fail) {
            if (count($value) > 3) {
                return $fail($attribute . ' should be less than or equal to 3.');
            }
        },
    ]
]);

Есть еще одно решение, опубликованное здесь: Как проверить количество файлов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...