从5.2迁移到5.3后,会话无法正常工作

时间:2016-10-16 05:59:45

标签: laravel-5

当我移动我的网站时,控制器不会获得会话,但会获得会话视图页面。我之前的版本是laravel 5.2来移动laravel 5.3

请允许我帮助我。

1 个答案:

答案 0 :(得分:2)

这是直接来自laravel docs,升级指南从5.2到5.3:

构造函数中的会话

在以前版本的Laravel中,您可以在控制器的构造函数中访问会话变量或经过身份验证的用户。这从未打算成为框架的明确特征。在Laravel 5.3中,您无法访问控制器构造函数中的会话或经过身份验证的用户,因为中间件尚未运行。

作为替代方案,您可以直接在控制器的构造函数中定义基于Closure的中间件。在使用此功能之前,请确保您的应用程序正在运行Laravel 5.3.4或更高版本:

Shadow4.this.i

当然,您也可以通过在控制器操作上键入Illuminate \ Http \ Request类来访问请求会话数据或经过身份验证的用户:

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;

class ProjectController extends Controller
{
    /**
     * All of the current user's projects.
     */
    protected $projects;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware(function ($request, $next) {
            $this->projects = Auth::user()->projects;

            return $next($request);
        });
    }
}