繁体   English   中英

如何在laravel控制器构造函数中登录用户

[英]How to get logged in user in a laravel controller constructor

我想要做的是在运行任何方法之前获取用户的激活状态,如果它们不活动则重定向。 这是我的代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;

class HomeController extends BaseController
{
    public function __construct(){
        parent::__CONSTRUCT();
        $this->middleware('auth');
        //SEE IF ACTIVE, something like auth()->user()->active
}

    public function home()
    {
        return redirect('/home');
    }
}

看一下构造函数最后一行的注释,我该怎么做?

从5.3开始,您无法直接访问控制器构造函数中的会话信息。 但是,您可以直接在控制器的构造函数中定义基于Closure的中间件。 更多信息在文档中

public function __construct()
    {
        $this->middleware('auth');
        $this->middleware(function ($request, $next) {
            if(Auth::user()->active) {
                return Redirect::route('activate');
            }    
            return $next($request);
        });
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM