このフォーム検証の問題を特定する
P粉296080076
P粉296080076 2023-08-31 17:10:00
0
2
549
<p>私は Laravel 5.8 を使用しており、データベースにいくつかのレコードを作成するためにこのコントローラー メソッドを作成しました。 </p> <pre class="brush:php;toolbar:false;">パブリック関数 doTheUpload(Request $request) { 試す{ $request->validate([ 'ビデオ' => 'nullable|mimes:mp4', 'video_thumb' => '必須|mimes:jpg,png,jpeg', 'video_name' => '必須'、 'video_desc' => 'nullable', 'available_download' => 'nullable', ]、[ 'video.mimes' => 'ビデオ ファイル形式が無効です', 'video_thumb.required' => 'ビデオサムネイルのアップロードが必要です', 'video_name.required' => 'ビデオの名前を入力する必要があります', 'video_thumb.mimes' => '画像のサムネイル ファイル形式が無効です', ]); //アップロード処理を行う }catch(\Exception $e){ dd($e); } }</pre> <p>しかし、これは機能せず、次のエラーが返されます: </p> <h2><strong>指定されたデータは無効です。 </strong></h2> <p>これは基本的にフォーム検証リクエストが原因であり、メソッドからこれらの検証を削除すると正常に動作します。 </p> <p>では、このエラーを返すフォームリクエストの検証の何が問題なのでしょうか? </p> <p>ご存知の場合は、教えてください...ご意見やご提案をいただければ幸いです。 </p> <p>ありがとうございます。 </p>
P粉296080076
P粉296080076

全員に返信(2)
P粉569205478

確認したい内容を正確に指定する必要があります:

リーリー

私のコード例:

リーリー
いいねを押す +0
P粉278379495

Laravel の検証を使用する場合は、ルールが失敗すると Laravel が自動的に例外をスローするため、Laravel にエラーを処理させる必要があります。 したがって、最初の提案は、検証ルーチンで try-catch ブロックを使用しないことです。

Laravel ドキュメントに記載されているとおり : p>

また、コントローラーでは検証を使用しないことをお勧めします。グッド プラクティスによれば、検証用に別の formRequest を作成することが推奨されているため、コントローラーを少し変更してバリデーター クラスを含める必要があります。

リーリー

次に、おそらく php 職人の make:request UploadVideoRequest を使用して、フォーム リクエストを作成する必要があります。 このコマンドは、app/Http/Requests にフォーム リクエスト クラスを作成します。これに次のように入力します。 リーリー このアプローチを使用することで、Laravel はユーザー入力を検証し、例外を通じてエラーを管理します。

###挨拶。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート