【发布时间】: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->file()获取那些。阅读manual 了解更多信息。