ログインユーザー情報の取得と表示

Laravelでは簡単にログインしているユーザーのデータを取得することができます。

前提

  • Laravel標準の認証機能を利用します。
  • ControllerはHelloController.phpというものを作成、利用します。
  • Viewは/resources/views/配下にhello.blade.phpを作成、利用します。

目標

ログインユーザー情報の取得と表示する。

Controller内でログインユーザー情報の取得

Auth::user()メソッドを利用します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;    #追加してください。


class HelloController extends Controller
{
    public function index(Request $request) {
        $user = Auth::user();   #ログインユーザー情報を取得します。
        return view('hello', ['user' => $user]);
    }
}

bladeファイルに渡したデータは hello.blade.php で以下のように書くことで名前やEmailアドレスを取得できます。

#ログインユーザー情報を表示します。
{{$user->name}}
{{$user->email}}

Bladeファイルだけでログインユーザー情報の取得

毎回毎回ControllerからBladeファイルにログインユーザー情報を渡してあげるのも大変です。すべての画面でログインユーザー情報が必要な場合、すべてのControllerで渡してあげなければなりません。

Bladeファイルだけでログインユーザー情報を取得する方法ためにも同じく Auth::user() を利用します。

Bladeファイル(hello.blade.php)に以下のように書くことで簡単にログインユーザーの名前やEmailアドレスが取得、表示できます。

#ログインユーザー情報を表示します。
{{Auth::user()->name}}
{{Auth::user()->email}}

まとめ

Auth::user() を使うことでLaravelでは簡単にログインユーザー情報を取得、表示することができます。

ログインせずに利用できるサービスも少ないと思うので、ユーザー情報管理ページなどで利用してみてください。