質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

解決済

2回答

181閲覧

【Laravel】Undefined index: emailエラーの解決方法

matsunaga.N

総合スコア2

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

1グッド

0クリップ

投稿2025/05/14 14:49

実現したいこと

ログイン画面にてメールアドレスと、パスワードを入力後、エラーを解消し、ログインできるようにしたいです。

発生している問題・分からないこと

ログイン画面でメールアドレス、パスワードを入力し、ログインしようとすると以下のエラーが発生します。また、データベースに登録されていないデータでログインしようとしても同じようなエラーが発生します。

エラーメッセージ

error

1Undefined index: email 2

該当のソースコード

FortifySericeProvider

1Fortify::authenticateUsing(function ($request) { 2 3 $loginRequest =new LoginRequest(); 4 5 $validated = $loginRequest->validate($request->all()); 6 7 return auth()->attempt([ 8 9 'email' => $validated['email'], 10 11 'password' => $validated['password'] 12 13 ]);

RedirectIfAuthenticated.php

1public function handle(Request $request, Closure $next, ...$guards) 2 3 { 4 5 $guards = empty($guards) ? ['web'] : $guards; 6 7 8 9 foreach ($guards as $guard) { 10 11 if (Auth::guard($guard)->check()) { 12 13 return redirect('/mypage/profile'); 14 15 } 16 17 } 18 19 20 21 return $next($request); 22 23 }

public/index.php

1$response = $kernel->handle( 2 3 $request = Request::capture() 4 5)->send();

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

dd(request()->all()); でリクエストデータを確認すると"email" が含まれていた。
dd($request->validated()); でバリデーション後のデータを確認 すると[]からの配列が出力されました。

補足

なかなか調べても自己解決できず、プロジェクトが進まないのでこちらで質問させていただきました。
ご教授のほど何卒よろしくお願いいたします。

CHERRY👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

FortifyServiceProviderにて以下の記述を行うとエラーが解消され、一旦は自己解決することができました。

RateLimiter::for('login', function (Request $request) { $email =(string) $request->email; return Limit::perMinute(10)->by($email . $request->ip()); });

投稿2025/05/16 14:36

matsunaga.N

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

HTML フォームの name 属性を確認(email, password ついてるか)

フォームの method="POST" を確認

投稿2025/05/15 01:20

tannq

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsunaga.N

2025/05/15 13:36

回答ありがとうございます。 以下の記述の通りname属性とPOSTメソッドの記述を確認しましたが、エラーは解消されません login.blade.php ``` <form class="login-form__form" action="/login" method="POST" novalidate> @csrf <div class="login-form__group"> <label class="login-form__label" for="email">メールアドレス</label> <input class="login-form__input" type="email" name="email" id="email"> @error('email') <p class="error-message">{{ $message }}</p> @enderror </div> <div class="login-form__group"> <label class="login-form__label" for="password">パスワード</label> <input class="login-form__input" type="password" name="password" id="password"> @error('password') <p class="error-message">{{ $message }}</p> @enderror </div> ```
tannq

2025/05/16 01:24

LoginRequest.phpで確認お願いします。 public function authorize() { return true; //戻り値は true にする必要があります。false を返すと、バリデーションは常に空の配列を返します。 }
matsunaga.N

2025/05/16 14:33

回答ありがとうございます Loginrequest.phpで確認行うと戻り値はreturn true;で記述は行なっておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問