Laravel 5 会话在Laravel的基本控制器中不工作

Laravel 5 会话在Laravel的基本控制器中不工作,laravel-5,laravel-5.1,Laravel 5,Laravel 5.1,问题 正在用户控制器中扩展基本控制器。我试图检查会话是否为空…如果是,它应该转到登录页面。但由于某些原因,这是行不通的 基本控制器 class BaseController extends Controller { public function __construct() { $user = Session::get('User'); if ($user == null) { return Redirect('/

问题

正在用户控制器中扩展基本控制器。我试图检查会话是否为空…如果是,它应该转到登录页面。但由于某些原因,这是行不通的

基本控制器

class BaseController extends Controller
{
    public function __construct() {
        $user = Session::get('User');

        if ($user == null)
        {
            return Redirect('/');
        }
    }
}
class UserController extends BaseController
{
    public function AllUsers()
    {
        $Users = \App\Models\User_Model::all();
        return view("/User/List", array("Users" => $Users));
    }
}
class AccountController extends Controller
{
    public function index()
    {
        return view("/User/login");
    }
}
用户控制器

class BaseController extends Controller
{
    public function __construct() {
        $user = Session::get('User');

        if ($user == null)
        {
            return Redirect('/');
        }
    }
}
class UserController extends BaseController
{
    public function AllUsers()
    {
        $Users = \App\Models\User_Model::all();
        return view("/User/List", array("Users" => $Users));
    }
}
class AccountController extends Controller
{
    public function index()
    {
        return view("/User/login");
    }
}
客户控制员

class BaseController extends Controller
{
    public function __construct() {
        $user = Session::get('User');

        if ($user == null)
        {
            return Redirect('/');
        }
    }
}
class UserController extends BaseController
{
    public function AllUsers()
    {
        $Users = \App\Models\User_Model::all();
        return view("/User/List", array("Users" => $Users));
    }
}
class AccountController extends Controller
{
    public function index()
    {
        return view("/User/login");
    }
}
路线

Route::get('/', 'AccountController@index');
Route::get('/Users', 'UserController@AllUsers');

这不是正确的方法。使用中间件在每个操作之前运行一些东西。 默认情况下,
auth
中间件处理这个问题

class UserController extends Controller
{
    /**
     * Instantiate a new UserController instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }
}
如果希望中间件为所有请求运行,则将其添加到内核中。在
app/Http/Kernel.php
文件中,添加以下内容:

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
    \App\Http\Middleware\Authenticate::class,    //add this one only, the rest should be there by default.
];
app\Controllers\AuthController.php
中,更改默认路由:

protected $redirectPath = '/';

只是一个旁注,可能对您的所有请求运行auth,将创建循环,因为用户甚至无法访问登录页面或主页。

我不能将代码
$this->中间件('auth')在基本控制器的构造函数中?就像在我的帖子里一样。这样做之后,我得到了404错误。