【发布时间】:2016-08-23 23:40:37
【问题描述】:
我刚刚从 4.2 升级到 Laravel 5.2 来尝试框架的新功能。但我在设置flash session 数据以在其他控制器/路由上发送时遇到问题。
这是我的简单代码:
控制器
<?php namespace App\Http\Controllers;
use Session;
use Illuminate\Http\Request;
class ctest extends Controller {
public function page_a() {
return redirect('page_b')->with('verified', 'Go to page B');
}
public function page_b(Request $request) {
dd(array(
session()->has('verified'), // Option a
$request->session()->get('verified') // Option b
));
}
}
路线
// Old code
// Route::get('/page_a', 'ctest@page_a');
// Route::get('/page_b', 'ctest@page_b');
// As pointed out by @rishal at the comment,
// I tried using this group but I can't still get
// the flash data.
Route::group(['middleware' => ['web']], function () {
Route::get('/page_a', 'ctest@page_a');
Route::get('/page_b', 'ctest@page_b');
});
page_b 上的结果
array: [
0 => false
1 => null
]
我无法弄清楚这有什么问题。每当我被重定向到 page_b 时,会话只包含 _token,不包括我已经在 page_a 上设置的 verified flash 会话数据。
PS:我正在使用数据库来存储会话而不是文件
【问题讨论】:
-
您是否尝试对您的路线 Route::group 进行分组
-
还没有。我需要这样做吗?为什么? :D 对不起。我是 5.2 的新手
-
兄弟我试过了,还是一样
-
根据 laravel doc laravel.com/docs/5.2/session 您使用请求检索会话,例如。 $request->session()->get('key');
标签: php laravel session laravel-5.2