LoginSignup
0
0

More than 1 year has passed since last update.

【エラー備忘録】Target class does not exist. Laravelの認証機能 LoginControllerが見つからない。

Last updated at Posted at 2021-06-12

状況

Laravelに備え付けの認証機能を使って、Googleの認証を実装する時のこと。
LoginControllerに処理を書き、route/web.phpに以下のルーティングを設定した。

route/web.php
Route::get('login/google', 'Auth\LoginController@redirectToGoogle');
Route::get('login/google/callback', 'Auth\LoginController@handleGoogleCallback');

エラー内容

Webページに表示されたエラー文はこちら。

Illuminate\Contracts\Container\BindingResolutionException
Target class [Auth\LoginController] does not exist.

Illuminate\Container\Container::build
vendor/laravel/framework/src/Illuminate/Container/Container.php:835

LoginControllerが見つからないとのこと。

原因の検証

このパターンのエラーで私がこれまで経験した例では、以下ような問題が原因…。
・namespaceが定義されていない
・ルーティングファイルに書いているパスが不完全、誤っている
・ルーティングファイルに使いたいコントローラーをuseしていない

解決法

今回はnamespaceの定義部分がコメントアウトになっていました。

app/Providers/RouteServiceProvider.php
protected $namespace = 'App\\Http\\Controllers';

この部分のコメントアウトを外すと、エラーは解消しました。

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