همانطور که احتمالا میدانید برای ارسال چند پارامتر به وسیله ی یک فیلد(input) بهتره name رو به صورت جمع و باید با علامت آرایه نوشت مثال:

<input type="file" name="images[]" class="custom-file-input" id="customFile" multiple>

خب نکته اصلی اینجاست که توی کنترلر برای ولیدیشن از همین نام استفاده کنید ولیدیشن به شما ارور میده و اجازه عبور نمیده.

  • کد اشتباه:
    if ($request->file('images')) {
            $this->validate($request,[
                'images' => 'max:10240000,mimes:jpg,bmp,png,jpeg',
            ]);
            $files = $request->file('images');
            foreach($files as $file){
                $item->uploadeItemPhoto($file, $item);
            }

    نکته این مقاله اینجاست که لاراول ولیدیشن در زمان چک کردن پارامتر های درون آرایه اون ها رو تک تک و به صورت جدا چک میکنه در نتیجه اسم input هم درون ولیدیشن از حالت جمع (images) به حالت مفرد (image) تغییر پیدا میکنه مثال :

    if ($request->file('images')) {
            $files = $request->file('images');
            foreach($files as $file){
                $this->validate($request,[
                    'image' => 'max:10240000|mimes:jpg,bmp,png,jpeg',
                ]);
                $item->uploadeItemPhoto($file, $item);
            }
        }

    با انجام این امر دیگه ولیدیشن مشکل ساز نمیشه براتون