〜宣伝〜
個人開発でエンジニア専門マッチングサービスを開発しましたので、是非未経験からエンジニア目指している人!現役エンジニアで教えたい人!使ってみてください!
β版リリース記念キャンペーン中です!
10名様限定、抽選でお好きな技術本1冊プレゼント!
🎉当選者にはメッセージ差し上げます(送付の際に住所はお聞きしません)
詳しくはこちらから↓
目的
- 初歩的であるがこれからもうっかり発生させそうなエラーなので解決方法を含めてまとめる
実施環境
- ハードウェア環境
項目 | 情報 | 備考 |
---|---|---|
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')); } }
-