我想做的是在运行任何方法之前获取用户的激活状态,如果它们不活动则重定向。这是我的代码:
<?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 开始,您不能直接在 Controller 构造函数中访问 session 信息。不过,您可以直接在 Controller 的构造函数中定义基于闭包的中间件。更多信息在 docs
public function __construct()
{
$this->middleware('auth');
$this->middleware(function ($request, $next) {
if(Auth::user()->active) {
return Redirect::route('activate');
}
return $next($request);
});
}
关于php - 如何在 laravel Controller 构造函数中获取登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43000880/