Laravel は、Web アプリケーション開発を簡素化するための豊富な機能とツールを開発者に提供する人気の PHP 開発フレームワークです。フォーム検証は Laravel の非常に重要な部分であり、開発者はフォームに入力されたデータが正当であるかどうかを検証し、エラーが発生した場合に対応するプロンプトを表示できます。ただし、Laravel のフォーム検証ではいくつかのエラーが発生するため、この記事ではいくつかの一般的なフォーム検証エラーを紹介し、対応する解決策を提供することを目的としています。
CSRF (クロスサイト リクエスト フォージェリ) は一般的な攻撃手法であり、攻撃者はリクエストのソースを偽造して、ユーザーが悪意のあるリクエストを送信できるようにします。それを知っていること。このような攻撃からアプリケーションを保護するために、Laravel では CSRF トークンが提供されています。ただし、フォームを送信するときに、CSRF トークンが正しくない場合、または有効期限が切れている場合は、CSRF エラーが発生します。
解決策:
フォームに CSRF トークンを追加します:
<form method="POST" action="/form"> @csrf <input type="text" name="name"> <button type="submit">Submit</button> </form>
フォーム データが一致しない場合要件 ルールを検証するときに検証エラーがトリガーされます。 Laravel は、required
(必須)、email
(メール形式) などの一般的な検証ルールを多数提供しています。検証エラーが正しく処理されない場合、ユーザーはフォームを正しく送信できず、関連するプロンプトを受け取ることができません。
解決策:
コントローラーでフォーム検証を実行し、検証エラーを処理します。サンプルコードは次のとおりです:
public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:8', ]); // Store the user... }
検証が失敗した場合、Laravel は自動的にフォームにリダイレクトしますページを作成し、エラー情報をビュー レイヤーに公開します。ビュー レイヤーでは、@error
および @if
命令を使用してエラー情報を取得および表示できます。サンプル コードは次のとおりです。ファイルアップロードエラー
<input id="name" type="text" class="@error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> @if ($errors->has('name')) <span class="invalid-feedback" role="alert"> <strong>{{ $errors->first('name') }}</strong> </span> @endif
<form method="POST" action="/upload" enctype="multipart/form-data"> @csrf <input type="file" name="photo" accept="image/*"> <button type="submit">Upload</button> </form>
@if
ディレクティブを使用して、ファイル アップロードのエラー メッセージを表示できます。public function upload(Request $request) { $request->validate([ 'photo' => 'required|file|max:1024', ]); $request->file('photo')->store('photos'); return redirect('upload')->with('success', 'Upload successful.'); }
上記は、Laravel フォーム検証における一般的なエラーと解決策の紹介です。これらのエラーを適切に処理することで、アプリケーションの堅牢性とユーザー エクスペリエンスを大幅に向上させることができます。
以上がいくつかの一般的なlaravelフォームエラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。