确定此表单验证的问题
P粉296080076
2023-08-31 17:10:00
<p>我正在使用 Laravel 5.8,并且我已经制作了这个控制器方法来在数据库中创建一些记录。</p>
<pre class="brush:php;toolbar:false;">public function doTheUpload(Request $request)
{
try{
$request->validate([
'video' => 'nullable|mimes:mp4',
'video_thumb' => 'required|mimes:jpg,png,jpeg',
'video_name' => 'required',
'video_desc' => 'nullable',
'available_download' => 'nullable',
],[
'video.mimes' => 'video file format is not valid',
'video_thumb.required' => 'uploading video thumbnail is required',
'video_name.required' => 'you must enter name of video',
'video_thumb.mimes' => 'image thumbnail file format is not valid',
]);
// Do the upload process
}catch(\Exception $e){
dd($e);
}
}</pre>
<p>但这将不起作用并返回此错误:</p>
<h2><strong>给定数据无效。</strong></h2>
<p>这基本上是因为表单验证请求,当我从方法中删除这些验证时,它会工作得很好。</p>
<p>那么那些返回此错误的表单请求验证出了什么问题?</p>
<p>如果您知道,请告诉我...我非常感谢你们的任何想法或建议。</p>
<p>谢谢。</p>
您必须准确指定要验证的内容:
我的代码示例:
当你使用 Laravel 的验证时,你应该让 Laravel 处理错误,因为当规则失败时,Laravel 会自动抛出异常。 因此,第一个建议是不要在验证例程中使用 try-catch 块。
正如 Laravel 文档所述: p>
此外,我建议您不要在控制器中使用验证,因为根据良好实践,建议创建单独的 formRequest 进行验证,因此您应该稍微修改控制器以包含验证器类:
现在您必须创建一个表单请求,也许使用 php artisan make:request UploadVideoRequest 此命令将在
app/Http/Requests
下创建一个表单请求类,您应将其填充为:通过使用这种方法,Laravel 验证用户输入并通过异常管理任何错误。
问候。