Laravel ユーザIDを取得しようとしたらエラーが出た話
目的
- 初歩的であるがこれからもうっかり発生させそうなエラーなので解決方法を含めてまとめる
実施環境
- ハードウェア環境
- ハードウェア環境
項目 | 情報 | 備考 |
---|---|---|
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'));
}
}
下記にコントローラの内容を記載する。(名前領域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'));
}
}
コントローラのの冒頭部分に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')); } }
Author And Source
この問題について(Laravel ユーザIDを取得しようとしたらエラーが出た話), 我々は、より多くの情報をここで見つけました https://qiita.com/miriwo/items/61040b45d62d54e2a2dd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .