新升级Lumen 5.1 Session无法使用

1、bootstrap/app.php 开启session
$app->middleware([
  Illuminate\Cookie\Middleware\EncryptCookies::class,
  Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
  Illuminate\Session\Middleware\StartSession::class,
  Illuminate\View\Middleware\ShareErrorsFromSession::class,
//      Laravel\Lumen\Http\Middleware\VerifyCsrfToken::class,
]);

2、session配置
'driver' => env('SESSION_DRIVER', 'file'),

3、路由
$app->get('/', function() use ($app) {
return $app->prepareResponse($app->welcome());;
});
$app->get('test', ['uses' => 'Controller@test']);
$app->get('demo', ['uses' => 'Controller@demo']);

4、控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Laravel\Lumen\Routing\Controller as BaseController;
class Controller extends BaseController
{
public function test(Request $request)
{
    $request->session()->put('key', 'test');
    $value = $request->session()->get('key');
    var_dump($value);
}
public function demo(Request $request)
{
    $value = $request->session()->get('key');
    var_dump(session($value));
}
}

6、访问
http://localhost:8000/test
返回:
test

http://localhost:8000/demo
返回:
null

同时 storage/framework/sessions 目录没有生成session文件

7、调查Session存储

vendor/illuminate/session/Store.php
/**
 * {@inheritdoc}
 */
public function save()
{
    $this->addBagDataToSession();
    $this->ageFlashData();
    $this->handler->write($this->getId(), $this->prepareForStorage(serialize($this->attributes)));
    $this->started = false;
}

这个方法根本没有调到。这是我新下载一份Lemun5.1项目进行的测试

项目刚开始用Lemun5.0,今天刚升级5.1,出现session无法使用的问题
请大家帮得看看,是否是新升级的Lemun5.1的Session 的bug?
已邀请:

Mr_Jing

赞同来自:

不要用 dd,它本质应该就是 die 或者 exit,结束了脚本运行。但是,其实框架在后面还有对 Response 对象进行处理,有 Session 的处理和操作。因为被你干掉了,就是 Session 就没有写成功。

要回复问题请先登录注册