LoginSignup
20
15

Laravel ユーザIDを取得しようとしたらエラーが出た話

Last updated at Posted at 2020-04-01

目的

  • 初歩的であるがこれからもうっかり発生させそうなエラーなので解決方法を含めてまとめる

実施環境

  • ハードウェア環境
項目 情報 備考
OS macOS Catalina(10.15.3)
ハードウェア MacBook Air (11-inch ,2012)
プロセッサ 1.7 GHz デュアルコアIntel Core i5
メモリ 8 GB 1600 MHz DDR3
グラフィックス Intel HD Graphics 4000 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.3 Homwbrewを用いて導入
Laravel バージョン 7.0.8 commposerを用いて導入
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いて導入

エラー内容

  • 下記の手順にしたがってAuthによるログイン機能を実装した。

  • コントローラで現在ログインしているユーザのユーザIDを取得し紐づいているビューファイルで表示する処理を記載した。

  • 下記にコントローラの内容を記載する。(名前領域userにあるhome.blade.phpのビューファイルを呼び出している。)

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    class UserController extends Controller
    {
        public function home() {
            $user_id = Auth::id();
            return view('user.home', compact('user_id'));
        }
    }
    
  • ブラウザで確認したところ下記のエラーが出力された。

    • 「Error Class 'App\Http\Controllers\Auth' not found」

      スクリーンショット 2020-03-30 13.58.24.png
  • not foundと言われているので確認してもAuthディレクトリは存在していた。

原因

  • コントローラにてAuth::id();を用いてログイン中のユーザIDを取得する場合は当該コントローラの冒頭に下記の記載がないとユーザIDを取得するとこはできない。

    use Illuminate\Support\Facades\Auth;
    

解決方法

  1. コントローラのの冒頭部分にuse Auth;の記載を追加する。
    • 下記に追加したあとのコントローラファイルの例を記載する。

      <?php
      
      namespace App\Http\Controllers;
      
      use Illuminate\Http\Request;
      
      //下記の内容を追記する
      use Illuminate\Support\Facades\Auth;
      
      class UserController extends Controller
      {
          public function home() {
              $user_id = Auth::id();
              return view('user.home', compact('user_id'));
          }
      }
      
20
15
1

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
20
15