在构造方法中使用Auth

时间:2018-03-08 20:20:29

标签: laravel laravel-5.6

Laravel版本: 5.6。*

PHP版本: 7.2.2

数据库驱动程序&版本: Mysql 5.0.12

说明

我需要在contruct方法中返回登录用户

重现步骤: 我需要在contruct方法中返回登录用户,

public function __construct(){

        $this->menu = new Menu();

        $this->menu->getEnabledMenu();

        $this->categories = $this->
        menu::with('children')->
        where('parent_id','=',0)->
        whereIn('id', [8,9,7])->
        orderBy('position', 'asc')->
        get();
    }

我尝试使用$ this-> user-> Auth :: user() - > id;但这不起作用

我也试过这个

https://laravel-news.com/controller-construct-session-changes-in-laravel-5-3

$this->middleware(function ($request, $next){
        $this->user= Auth::user();
        return $next($request);
    });

但我不知道如何访问$ this-> user

请 我需要帮助

抱歉我的英文

1 个答案:

答案 0 :(得分:0)

您需要在控制器上定义$user属性,如:

class MyController {
    // keep a reference to the authenticated user.
    public $user;

    public function __construct() {
        $this->middleware(function ($request, $next){
            $this->user = Auth::user();
            return $next($request);
        });
    }
    ...
}