如何在laravel 5.2中获取当前登录的用户详细信息?

时间:2016-05-27 05:18:37

标签: laravel

如何在laravel 5.2中获取当前登录的用户详细信息?我已经做了一些事情来获取用户名但它无法正常工作。 以下是获取当前登录用户名的代码

    <?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;
        }

    }
}

这里如果我只是在函数current_user中返回**返回'Hello'**,它在检查if条件后工作正常,所以我看到if条件没有问题。但是,当我返回 user() - &gt;名称时,它说 调用未定义的函数App \ Http \ Controllers \ user()

2 个答案:

答案 0 :(得分:1)

要使用\Auth::user()访问授权用户信息。您可能只是缺少\Auth::部分,因为您在条件中使用了正确的语法。

答案 1 :(得分:0)

您需要稍微更改一下代码。

<?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
        }
    }
}

之后,您可以获得current user name

您想要返回2个值,这是不可能的。当您返回某些内容时,您的方法将停止运行。这就是为什么你没有获得用户名的原因。

希望这有效!