Laravel 图片验证只是重新加载页面,什么都不做
Laravel image validation just reloads page and does nothing
所以问题是我的表单中有图片上传,我之前在其他项目上这样做过并且一切正常,但现在由于某种原因我无法使用 dd()
命令查看发送的内容来自 <form>
。这是我的控制器代码:
$data = $request->validate([
'model_id' => 'required',
'part_name' => 'required',
'part_category' => 'required',
'make_years' => 'required',
'price' => 'required',
'identifier_number' => '',
'part_image' => 'image|mimes:jpg,png,jpeg,gif,svg|max:2048'
]);
dd($data);
这是我的 blade 图像输入部分:
<div class="form-row row-cols-1" style="margin-right: 0px;margin-left: 0px;">
<label for="part_image" class="custom-file-upload btn btn-primary text-nowrap d-flex d-sm-flex d-md-flex d-lg-flex justify-content-center align-items-center justify-content-sm-center align-items-sm-center justify-content-md-center align-items-md-center justify-content-lg-center align-items-lg-center justify-content-xl-center align-items-xl-center">
<i class="fa fa-cloud-upload"></i>Įkelti nuotrauką
</label>
<input id="part_image" name="part_image" type="file" hidden>
@error('part_image')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
所以基本上如果我在我的控制器中注释 part_image
验证,dd()
函数工作,并且我看到所有通过 POST
发送的变量,但是如果我尝试取消注释图像验证,当我提交,页面重新加载,我什至看不到任何错误或转储消息。可能是什么问题呢?这可能是一些愚蠢的错误,但我能找到它。
我也在我的表格中说明 enctype="multipart/form-data"
所以事实并非如此
您没有访问 dd() 是因为您肯定有验证错误,但您没有在 blade 视图中正确显示它们。如果您没有任何验证错误,控制流将到达 dd() 并在控制器内打印结果。 $request->validate(...) 自动将您重定向回来,因此您可以做的是在 blade 视图中正确显示错误,最好一次调试:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
所以问题是我的表单中有图片上传,我之前在其他项目上这样做过并且一切正常,但现在由于某种原因我无法使用 dd()
命令查看发送的内容来自 <form>
。这是我的控制器代码:
$data = $request->validate([
'model_id' => 'required',
'part_name' => 'required',
'part_category' => 'required',
'make_years' => 'required',
'price' => 'required',
'identifier_number' => '',
'part_image' => 'image|mimes:jpg,png,jpeg,gif,svg|max:2048'
]);
dd($data);
这是我的 blade 图像输入部分:
<div class="form-row row-cols-1" style="margin-right: 0px;margin-left: 0px;">
<label for="part_image" class="custom-file-upload btn btn-primary text-nowrap d-flex d-sm-flex d-md-flex d-lg-flex justify-content-center align-items-center justify-content-sm-center align-items-sm-center justify-content-md-center align-items-md-center justify-content-lg-center align-items-lg-center justify-content-xl-center align-items-xl-center">
<i class="fa fa-cloud-upload"></i>Įkelti nuotrauką
</label>
<input id="part_image" name="part_image" type="file" hidden>
@error('part_image')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
所以基本上如果我在我的控制器中注释 part_image
验证,dd()
函数工作,并且我看到所有通过 POST
发送的变量,但是如果我尝试取消注释图像验证,当我提交,页面重新加载,我什至看不到任何错误或转储消息。可能是什么问题呢?这可能是一些愚蠢的错误,但我能找到它。
我也在我的表格中说明 enctype="multipart/form-data"
所以事实并非如此
您没有访问 dd() 是因为您肯定有验证错误,但您没有在 blade 视图中正确显示它们。如果您没有任何验证错误,控制流将到达 dd() 并在控制器内打印结果。 $request->validate(...) 自动将您重定向回来,因此您可以做的是在 blade 视图中正确显示错误,最好一次调试:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif