Указан неверный аргумент для foreach () в форме и для загрузки нескольких изображений в Laravel - PullRequest
0 голосов
/ 14 февраля 2020

Загрузка формы и изображения продукта в виде рекомендуемого изображения и других изображений с использованием функции магазина laravel

use App\Productimage;
use App\Products; 
public function store(Request $request)
{
    $featured = $request->featured_image->store('products_featured');
    $product = Products::create([       //uploading successfully
    'name'=>$request->name,
    'featured_image' => $featured,
    ]);
             foreach ($request->photos as $photo) {   //error
        $filename = $photo->store('product_images');
        Productimage::create([
            'product_id' => $product->id,
            'image_name' => $filename,
        ]);
    }
    return back();
}

Ответы [ 2 ]

0 голосов
/ 14 февраля 2020

ваша форма должна иметь enctype="multipart/form-data" и тип файла ввода array

   foreach ($request->file('photos') as $photo) {   //error
            $filename = $photo->store('product_images');
            Productimage::create([
                'product_id' => $product->id,
                'image_name' => $filename,
            ]);
        }
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="photos[]"/>

0 голосов
/ 14 февраля 2020

Убедитесь, что $request->photos - это массив, а ваша форма - multipart/form-data. Вам нужно отправлять файлы с вашего блейда (или откуда вы их отправляете) в photos[], например:

<input type="file" name="photos[]"/>

PS - В вашем методе контроллера вы должны получить доступ к $request->photos, как это $request->file('photos'). - Это не причина вашей ошибки, но если вы этого не сделаете, вы получите объект JSON вместо содержимого файла.

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