当我移动我的网站时,控制器不会获得会话,但会获得会话视图页面。我之前的版本是laravel 5.2来移动laravel 5.3
请允许我帮助我。
答案 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);
});
}
}