Kenal pasti isu dengan pengesahan borang ini
P粉296080076
2023-08-31 17:10:00
<p>Saya menggunakan Laravel 5.8 dan saya telah membuat kaedah pengawal ini untuk mencipta beberapa rekod dalam pangkalan data. </p>
<pre class="brush:php;toolbar:false;">fungsi awam doTheUpload(Minta $request)
{
cuba{
$request->validate([
'video' => 'nullable|mimes:mp4',
'video_thumb' => 'diperlukan|mimes:jpg,png,jpeg',
'video_name' => 'diperlukan',
'video_desc' => 'boleh batal',
'available_download' => 'nullable',
],[
'video.mimes' => 'format fail video tidak sah',
'video_thumb.required' => 'memuat naik imej kecil video diperlukan',
'video_name.required' => 'anda mesti memasukkan nama video',
'video_thumb.mimes' => 'format fail lakaran kenit imej tidak sah',
]);
//Lakukan proses muat naik
}tangkap(Pengecualian $e){
dd($e);
}
}</pre>
<p>Tetapi ini tidak akan berfungsi dan mengembalikan ralat ini: </p>
<h2><strong>Data yang diberikan adalah tidak sah. </strong></h2>
<p>Ini pada asasnya kerana permintaan pengesahan borang dan apabila saya mengalih keluar pengesahan ini daripada kaedah ia berfungsi dengan baik. </p>
<p>Jadi, apakah yang salah dengan pengesahan permintaan borang yang mengembalikan ralat ini? </p>
<p>Jika anda tahu, sila beritahu saya...Saya amat menghargai sebarang pendapat atau cadangan. </p>
<p>Terima kasih. </p>
Anda mesti menyatakan dengan tepat perkara yang ingin anda sahkan:
Contoh kod saya:
Apabila anda menggunakan pengesahan Laravel, anda harus membiarkan Laravel mengendalikan ralat kerana Laravel akan secara automatik membuang pengecualian apabila peraturan gagal. Oleh itu, cadangan pertama adalah untuk tidak menggunakan blok cuba-tangkap dalam rutin pengesahan.
Seperti yang dinyatakan dalam dokumentasi Laravel: p>
Selain itu, saya mengesyorkan anda untuk tidak menggunakan pengesahan dalam pengawal anda kerana mengikut amalan yang baik adalah disyorkan untuk membuat borang yang berasinganPermintaan untuk pengesahan, jadi anda harus mengubah sedikit pengawal anda untuk memasukkan kelas pengesah:
Kini anda perlu membuat permintaan borang, mungkin menggunakan php artisan make:request UploadVideoRequest Perintah ini akan mencipta kelas permintaan borang di bawah
app/Http/Requests
app/Http/Requests
yang anda perlu isi dengan:Dengan menggunakan pendekatan ini, Laravel mengesahkan input pengguna dan menguruskan sebarang ralat melalui pengecualian.
Salam.