1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バリデーションについて

Posted at

Formを送信した際に内容が空だとエラー画面に移動してしまう際の対策

バリデーションとは

テストとその後の生産で実行される手順、プロセス、または活動が、すべての段階で望ましいレベルのコンプライアンスを維持していることを証明する文書証拠を確立するプロセス。

大まかに言えば、内容が正しいかチェックすること

$validatedData = $request->validate([ルール],[カスタムメッセージ]);

コントローラー内にバリデーション追加

ルールの追加

第1引数は、各フィールドに対するバリデーションルールの配列。
バリデーションの方法は数種あるが今回は簡単なcontrollerに直接書き込む方法でしてみる。
この方法だとcontrollerへの記述が多くなるので、記述量が増える際は別ファイルに書き込む。
方法は簡単で元々あるvalidate関数を使う方法

controller
public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ]);
    // バリデーションに通れば下記の処理を実行する。

    return redirect('/posts');
}

エラーメッセージの表示

エラー表示を出したい箇所に@error文を記述し、その中に表示させたい要素を入れる。

view
@error('title')
    <div>{{ $message }}</div>
@enderror

エラーメッセージカスタム

第2引数は、各ルールに対するカスタムエラーメッセージを指定することができる連想配列。

    $validated = $request->validate([
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ],[
        'titel.max' => 'タイトルは255文字以内で入力してください。',
        'body' => '入力は必須です',
    ]);
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?