首页 > 解决方案 > 在 foreach 循环 LARAVEL 8 中提交多个表单

问题描述

我在 foreach 循环中有表单,我想在我的控制器中获取值。文本作品的输入很好(我可以在请求中获取值)但输入图像没有!

@foreach ($categories as $category)
 <div class="col-12 col-sm-3 category">
  <form method="POST" action="{{route('admin')}}"
     class="card" enctype="multipart/form-data">
     @csrf
     <input type="file" id="img" class="upload_img" name="img">
     <label for="img">
        <img src="img/{{$category->img}}" alt="pizza">
     </label>
     <input name="title" type="text" value="{{$category->name}}">
     <input class="category_id" name="id" type="text" value="{{$category->id}}">
     <div class="btns">
        <button type="submit" name="submit" value="remove" class="remove">remove</button>
        <button type="submit" name="submit" value="save" class="save">save</button>
     </div>
  </form>
 </div>
@endforeach

当我 dd($request->all()) 它适用于第一种形式,但另一种没有。

如何获取提交的每个表单的图像

我的控制器:

    class AdminController extends Controller
{
    public function index()
    {
        return  view('admin.index',[
            'categories' => Category::all(),
        ]);
    }
    public function update(Request $request)
    {
        dd($request->all());

    }
}

标签: phplaravel

解决方案


您不希望循环内的表单。在循环外创建一个表单,并命名每个文件输入:

<input type="file" id="img" class="upload_img" name="img[]">

然后你可以做一个

foreach($request->img as $img)
{
  //save...
}

单独访问它们


推荐阅读