重定向后Laravel会话/闪存变量不持久

时间:2019-06-02 13:56:37

标签: php laravel session-variables

因此,我尝试使用会话/ flash变量进行重定向,但我似乎无法弄清楚为什么在重定向后再也没有会话变量。

我有一个像这样的控制器动作:

public function verifyAction(Request $request)
{
    return redirect()
        ->route('login')
        ->with('test', 'Test');
}

在登录路径上,我正在转储会话(使用Laravel的Session()-> all()函数),但是它似乎从未包含'test'键。

我正在使用“工匠路线:列表”来显示这样的路线:

+--------+----------+--------+--------+---------------+------------+
| Domain | Method   | URI    | Name   | Action        | Middleware |
+--------+----------+--------+--------+---------------+------------+
|        | GET|HEAD | login  | login  | @loginAction  | web        |
|        | GET|HEAD | verify | verify | @verifyAction | web        |
+--------+----------+--------+--------+---------------+------------+

并且两个路由都使用docs([laravel.com/docs][1])中指定的Web中间件,但是重定向后会话数据始终为空,如下所示:

["_flash"]=>
array(2) {
    ["old"] => array(0) {}
    ["new"] => array(0) {}
}

我希望重定向后在_flash数组中看到'test'键,但实际上它始终为空。 任何想法在这里发生了什么以及如何使它工作?

让我感到奇怪的一件事是,我可以像这样在控制器中添加普通的会话变量,并且效果很好:

Session::put([
    'test-2' => 'Testing'
]);

因此会话变量可以正常工作,只是Flash变量不起作用。

发行版:Ubuntu 19.04(Disco Dingo),Laravel 5.8,Laradock,Docker版本18.09.5,内部版本e8ff056,PHP 7.2.15。

编辑

浏览器活动:

请求网址:http://localhost/verify?code=ABC&uid=2 请求方法:GET 状态码:302已找到 远端地址:[:: 1]:80 推荐人政策:降级时不推荐人

请求网址:http://localhost/login 请求方法:GET 状态码:200 OK 远端地址:[:: 1]:80 推荐人政策:降级时不推荐人

0 个答案:

没有答案