php - Laravel 表单请求 hasFile() 不起作用
问题描述
我正在使用 Laravel 表单请求来验证一组输入组。我需要使用循环检查文件以进行自定义验证。但它显示了这个错误。
Error
Call to undefined method Symfony\Component\HttpFoundation\ParameterBag::hasFile()
我的 HTML 输入 (createUser.blade.php)
<input type="text" name="users[0][name]">
<input type="number" name="users[0][age]">
<input type="file" name="users[0][profile_pic]">
<input type="text" name="users[1][name]">
<input type="number" name="users[1][age]">
<input type="file" name="users[1][profile_pic]">
我的表单请求 (CreateUserFormRequest.php)
dd($this->request->hasFile('users');
解决方案
如果你想在FormRequest
课堂上检查请求是否有价值,那么你可以像下面那样做
$this->has('users')
如果你想检查请求是否有文件然后
$this->hasFile('logo')
还要确保输入类型是文件
然后检查请求中的所有数据
$this->all()
对于文件,确保输入类型是文件
<input type="file" name="users[1][profile_pic]">
还要确保 enctype="multipart/form-data"
在表单标签中
<form method="POST" action="" enctype="multipart/form-data">
Updated
<form method="POST" action="{{route("testing")}}" enctype="multipart/form-data">
@csrf
<input type="number" name="users[0][name]">
<input type="number" name="users[0][age]">
<input type="file" name="users[0][profile_pic]">
<input type="number" name="users[1][name]">
<input type="number" name="users[1][age]">
<input type="file" name="users[1][profile_pic]">
<button type="submit">Submit</button>
</form>
并在表格请求中
foreach ($this->users as $key=>$value){
if($value['profile_pic']!=null){
dump($value['profile_pic']);
}
}
如果您正在寻找文件验证,那么您可以执行以下操作
public function rules()
{
return [
'users.*.profile_pic'=>'required|file'
];
}
在你看来
<input type="file" name="users[0][profile_pic]">
{{ $errors->first('users.0.profile_pic') }}
<input type="file" name="users[1][profile_pic]">
{{ $errors->first('users.1.profile_pic') }}
推荐阅读
- postgresql - Postgresql 错误类型“”不存在
- hive - Dbeaver 异常:数据源无效
- nginx - NGINX 将位置重写到另一个端口
- bootstrap-4 - Bootstrap-4 中每行 5 列
- linux - nginx wordpress 子域重定向到 root
- java - 在 Word 2016 中找不到 BI Publisher 添加按钮
- javascript - Shiny.onInputChange 不是函数,奇怪的错误
- arrays - 多维数组的最佳结构JSON结构是什么
- javascript - ReactJS,如何将 json 对象复制到另一个标识值更改
- c# - NSubstitute 的 Received(count) 始终为绿色(模拟具体类时)