【问题标题】:Submit multiple forms inside foreach loop LARAVEL 8在 foreach 循环 LARAVEL 8 中提交多个表单
【发布时间】:2021-09-17 17:06:33
【问题描述】:

我在 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());

    }
}

【问题讨论】:

  • 不确定这是否是您想要做的,但您不能一次提交多个表单。如果您想一次发送所有数据,只需使用一种形式。除此之外,您的代码将生成多个具有相同 id 的元素,这在 HTML 中是无效的。元素 ID 必须在文档中是唯一的。并且文件输入不是正常 POST 数据的一部分,因此请尝试使用 $request-&gt;file() 获取那些。阅读manual 了解更多信息。

标签: php laravel


【解决方案1】:

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

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

那么你可以做一个

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

单独访问它们

【讨论】:

    【解决方案2】:

    使您的方法起作用的唯一方法是将图像作为单独的模型,或者将其作为从类别和另一个迁移(例如帖子或产品)派生的迁移。通过这种方式,您可以使用hasManybelongTo 来允许根据您的关系为同一ID 插入多个图像,但除此之外我看不到任何其他解决方案。如果你愿意,我可以给你一个管理用户及其角色的例子,你可以适应。

    【讨论】:

      【解决方案3】:

      你的意见

      只需将 name="img" 更改为 name ="img[]" 并添加属性 multiple="multiple" 。

      【讨论】:

        猜你喜欢
        • 2021-06-29
        • 2019-03-18
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 2021-02-13
        • 2021-04-17
        • 2018-08-16
        相关资源
        最近更新 更多