Naveen Kumar
Naveen Kumar

Reputation: 1626

how to get current logged-in user details in laravel 5.2?

how do i get current logged in user details in laravel 5.2 ? I have done something to get the user name but it doesn't work properly. Here is the code that gets the current logged-in user name

    <?php

namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use Illuminate\Contracts\Auth\User;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Auth\AuthController;

class UserProfileController extends Controller
{

 /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */


    public function current_user()
    {


        if(\Auth::check() && \Auth::user()->name) {

            return 'hello';
            return user()->name;
        }

    }
}

Here If i just return a ** return 'Hello'** in the function current_user , it works fine after checking the if condition, so i see there is no problem with if condition. But when i return user()->name it says Call to undefined function App\Http\Controllers\user()

Upvotes: 2

Views: 1333

Answers (2)

Robin Dirksen
Robin Dirksen

Reputation: 3422

You need to change your code a little bit.

<?php
namespace App\Http\Controllers;

use App\Http\Requests;
use Illuminate\Http\Request;
use DB;
use Illuminate\Contracts\Auth\User;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Auth\AuthController;

class UserProfileController extends Controller
{

 /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */


    public function current_user()
    {
        if(\Auth::check() && \Auth::user()->name) {
            return 'Hello '.\Auth::user()->name; //this line changed
        }
    }
}

After that you can get the current user name.

You want to return 2 values, that's not possible. When you return something your method will stop running. So that's why you didn't get the user name.

Hope this works!

Upvotes: 0

Giedrius Kiršys
Giedrius Kiršys

Reputation: 5314

To access authorized user information use \Auth::user(). You probably just missing \Auth:: part, because You using correct syntax in condition.

Upvotes: 2

Related Questions