0
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-26

やりたいこと

プロフィールページ、パスワード再設定ページで、
バリデーションエラーメッセージのデフォルトが「パスワード」になっている。
これを「新しいパスワード」とユーザーにとってわかりやすいデザインにしたい。

ビフォーアフター例

プロフィール画面

↓ 編集前
スクリーンショット 2025-04-27 18.55.52.png

↓ 編集後
スクリーンショット 2025-04-27 18.59.22.png

パスワード再設定画面

↓ 編集前
スクリーンショット 2025-04-27 19.32.08.png

↓ 編集後
スクリーンショット 2025-04-27 19.30.18.png

⚠️ 最初に注意点

以下4点を元に実装していく。
✅ nameは変えない
✅ labelはOK
✅ langで共通
✅ コントローラーで個別

✅ 手順:プロフィール画面

① /Http/Controllers/Auth/PasswordController.php を開く

パスワード更新(変更)の処理をしてるのは、
PasswordController の update() メソッド!

(ファイルパス例👇)

/app/Http/Controllers/Auth/PasswordController.php

② update() メソッドでバリデーション個別指定を書く

/Http/Controllers/Auth/PasswordController.php
public function update(Request $request)
{
    $request->validate([
        'current_password' => ['required', 'current_password'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ], [
        'current_password.required' => '現在のパスワードを入力してください。',
        'current_password.current_password' => '現在のパスワードが正しくありません。',
        'password.required' => '新しいパスワードを入力してください。',
        'password.min' => '新しいパスワードは8文字以上で指定してください。',
        'password.confirmed' => '新しいパスワードと新しいパスワード(再確認)が一致しません。',
    ]);

    // パスワード更新ロジック
}

ここでポイント

項目 内容
name="password"はそのまま Laravelの標準通り(new_passwordなど変更しない)
表示だけ「新しいパスワード」 日本語として自然に読める
特定画面だけ変えたいときは、コントローラーのバリデーション第2引数で個別指定 特定画面だけ対応できる(共通エラーメッセージは /lang/ja/validation.php )

③ ゴール

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

✅ 手順:パスワード再設定画面

① /Http/Controllers/Auth/NewPasswordController.php を開く

ファイルパス例:

/app/Http/Controllers/Auth/NewPasswordController.php

ここに「パスワードリセット(再設定)」の処理がある!

② store() メソッドを修正する

エラーメッセージ個別指定つきに修正

Http/Controllers/Auth/NewPasswordController.php
public function store(Request $request)
{
    $request->validate([
        'token' => ['required'],
        'email' => ['required', 'email'],
        'password' => ['required', 'confirmed', 'min:8'],
    ], [
        'email.required' => 'メールアドレスを入力してください。',
        'email.email' => '正しいメールアドレス形式で入力してください。',
        'password.required' => '新しいパスワードを入力してください。',
        'password.min' => '新しいパスワードは8文字以上で指定してください。',
        'password.confirmed' => '新しいパスワードと新しいパスワード(再確認)が一致しません。',
    ]);

    // パスワードリセット処理...
}

③ ゴール

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

関連

0
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
0
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?