我正在使用 Laravel 5.8,並且我已經製作了這個控制器方法來在資料庫中建立一些記錄。
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); } }
但這將不起作用並返回此錯誤:
這基本上是因為表單驗證請求,當我從方法中刪除這些驗證時,它會運作得很好。
那麼那些傳回此錯誤的表單請求驗證出了什麼問題?
如果你知道,請告訴我...我非常感謝您們的任何想法或建議。
謝謝。
您必須準確指定要驗證的內容:
我的程式碼範例:
當你使用 Laravel 的驗證時,你應該讓 Laravel 處理錯誤,因為當規則失敗時,Laravel 會自動拋出例外。 因此,第一個建議是不要在驗證例程中使用 try-catch 區塊。
如 Laravel 文件所述: p>
此外,我建議您不要在控制器中使用驗證,因為根據良好實踐,建議創建單獨的 formRequest 進行驗證,因此您應該稍微修改控制器以包含驗證器類別: