ホームページ  >  に質問  >  本文

このフォーム検証の問題を特定する

<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粉296080076P粉296080076390日前499

全員に返信(2)返信します

  • P粉569205478

    P粉5692054782023-09-01 16:03:08

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

    リーリー

    私のコード例:

    リーリー

    返事
    0
  • P粉278379495

    P粉2783794952023-09-01 10:21:07

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

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

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

    リーリー

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

    ###挨拶。

    返事
    0
  • キャンセル返事