Identifizieren Sie Probleme mit dieser Formularvalidierung
P粉296080076
2023-08-31 17:10:00
<p>Ich verwende Laravel 5.8 und habe diese Controller-Methode erstellt, um einige Datensätze in der Datenbank zu erstellen. </p>
<pre class="brush:php;toolbar:false;">public function doTheUpload(Request $request)
{
versuchen{
$request->validate([
'video' => 'nullable|mimes:mp4',
'video_thumb' => 'required|mimes:jpg,png,jpeg',
'video_name' => 'erforderlich',
'video_desc' =>
'available_download' => 'nullable',
],[
'video.mimes' => 'Videodateiformat ist ungültig',
'video_thumb.required' => 'Das Hochladen der Miniaturansicht des Videos ist erforderlich',
'video_name.required' => 'Sie müssen den Namen des Videos eingeben',
'video_thumb.mimes' => 'Bildminiaturdateiformat ist ungültig',
]);
//Führen Sie den Upload-Vorgang durch
}catch(Ausnahme $e){
dd($e);
}
}</pre>
<p>Aber das funktioniert nicht und gibt diesen Fehler zurück: </p>
<h2><strong>Die angegebenen Daten sind ungültig. </strong></h2>
<p>Das liegt im Wesentlichen an den Formularvalidierungsanforderungen und wenn ich diese Validierungen aus der Methode entferne, funktioniert es einwandfrei. </p>
<p>Was ist also falsch an der Validierung der Formularanfragen, die diesen Fehler zurückgeben? </p>
<p>Wenn Sie es wissen, lassen Sie es mich bitte wissen... Ich würde mich über jeden Gedanken oder Vorschlag sehr freuen. </p>
<p>Vielen Dank. </p>
您必须准确指定要验证的内容:
我的代码示例:
当你使用 Laravel 的验证时,你应该让 Laravel 处理错误,因为当规则失败时,Laravel 会自动抛出异常。 因此,第一个建议是不要在验证例程中使用 try-catch 块。
正如 Laravel 文档所述: p>
此外,我建议您不要在控制器中使用验证,因为根据良好实践,建议创建单独的 formRequest 进行验证,因此您应该稍微修改控制器以包含验证器类:
现在您必须创建一个表单请求,也许使用 php artisan make:request UploadVideoRequest 此命令将在
app/Http/Requests
下创建一个表单请求类,您应将其填充为:通过使用这种方法,Laravel 验证用户输入并通过异常管理任何错误。
问候。