因此,我尝试使用会话/ 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 推荐人政策:降级时不推荐人