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?

共通エラーメッセージ変更【Laravel】

Last updated at Posted at 2025-04-27

やりたいこと

新規登録ページで、
バリデーションエラーメッセージのデフォルトを変更させたい。

ビフォーアフター例

新規登録画面

↓ 編集前

スクリーンショット 2025-04-27 23.52.41.png

↓ 編集後

スクリーンショット 2025-04-27 23.54.02.png

⚠️ 最初に注意点

以下4点を元に実装していく。
✅ ラベル(パスワード)そのまま使う(=ラベル名は変更しない)
✅ 新規登録画面で
✅ エラー文を共通管理(langファイルだけでやる)
✅ つまり、コントローラー側では何もしない

✅ 手順

① /lang/ja/validation.php を開く

ファイルパス例👇

/lang/ja/validation.php

このファイルが、 Laravel でバリデーションエラーメッセージを共通管理する場所!

② custom セクションにフィールド名別にエラーを書く

具体的には、customキーの中にこう追加👇

/lang/ja/validation.php
'custom' => [
    'password' => [
        'required' => 'パスワードを入力してください。',
        'confirmed' => 'パスワードとパスワード(再確認)が一致していません。',
        'min' => 'パスワードは8文字以上で指定してください。',
    ],
    'password_confirmation' => [
        'required' => 'パスワード(再確認)を入力してください。',
    ],
],

ここでポイント

項目 内容
name属性 そのまま(password, password_confirmation)
ラベル表示 「パスワード」「パスワード(再確認)」そのまま
コントローラー側 特にエラーメッセージを指定しないでOK!

③ コントローラーのバリデーションは普通でいい

例えば、新規登録処理(たぶんRegisteredUserController)のバリデーションは
普通にこれでOK👇

/Http/Controllers/Auth/RegisteredUserController.php
$request->validate([
    'name' => ['required', 'string', 'max:255'],
    'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
    'password' => ['required', 'confirmed', 'min:8'],
]);

メッセージ指定は一切不要!
→ 自動的にlang/ja/validation.phpのカスタムメッセージが使われる!

④ ゴール

スクリーンショット 2025-04-27 23.54.02.png

関連

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?