通过中间件方法访问Laravel会话 - 会话存储未根据请求设置

时间:2016-12-24 19:21:29

标签: laravel session laravel-5.2

我在auth/register(Laravel Signup Auth)功能期间设置会话。 当我尝试访问我在注册后立即执行的方法中session期间设置的my_user_referral_session auth/register时。

我收到以下错误

RuntimeException in Request.php line 870:
Session store not set on request.

我的Routes.php文件

Route::get("/dashboard","DashboardController@dashboard");

DashboardController.php

public function __construct() {
    $this->middleware('auth');
} 

public function dashboard() {
    $request = new \Illuminate\Http\Request();

    if($request->session()->has("my_user_referral_session")){
     /* Reading session data set during Laravel auth/register 
    }

enter image description here

注意:当我使用session()辅助方法时,它的工作没有任何错误,但我需要删除不在session()辅助方法中的会话。

注意:$ this->中间件(' auth');在构造中。我怀疑这是导致问题

2 个答案:

答案 0 :(得分:1)

您可以使用session()->forget('my_user_referral_session');

删除会话

会话未绑定请求。

答案 1 :(得分:0)

我认为该行

$request = new \Illuminate\Http\Request();

创建一个新的“空”请求,因此那里没有会话数据。

获取会话数据的最佳方法是使用session()帮助程序:

session('my_user_referral_session')

将返回您所需的信息,如果没有该密钥的会话数据,则返回null。