目的
- 初歩的であるがこれからもうっかり発生させそうなエラーなので解決方法を含めてまとめる
実施環境
- ハードウェア環境
| 項目 | 情報 | 備考 |
|---|---|---|
| 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')); } } -
ブラウザで確認したところ下記のエラーが出力された。
-
not foundと言われているので確認してもAuthディレクトリは存在していた。
原因
-
コントローラにて
Auth::id();を用いてログイン中のユーザIDを取得する場合は当該コントローラの冒頭に下記の記載がないとユーザIDを取得するとこはできない。use Illuminate\Support\Facades\Auth;
解決方法
- コントローラのの冒頭部分に
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')); } }
-
