【问题标题】:How can I use Illuminate\Session\Middleware\StartSession::class on lumen 5.2如何在流明 5.2 上使用 Illuminate\Session\Middleware\StartSession::class
【发布时间】:2016-09-11 22:36:55
【问题描述】:

我收到了这个错误:

BindingResolutionException in Container.php line 839:
Unresolvable dependency resolving 
[Parameter #0 [ <required> $app ]] in class Illuminate\Support\Manager

bootstrap/app.php:

$app->middleware([
 Illuminate\Session\Middleware\StartSession::class,
]);

【问题讨论】:

标签: laravel lumen laravel-middleware lumen-5.2


【解决方案1】:

以下是在 Lumen 中激活会话需要做什么的回顾(在 Lument 5.4 上测试):

config/session.php

从 Laravel 仓库下载会话配置。

bootstrap/app.php

// Load session config (otherwise it won't be loaded)
$app->configure('session');

// Add `Session` middleware
$app->middleware(Illuminate\Session\Middleware\StartSession::class);

// Add `SessionServiceProvider`
$app->register(Illuminate\Session\SessionServiceProvider::class);

// fix `BindingResolutionException` problem
$app->bind(Illuminate\Session\SessionManager::class, function ($app) {    
    return $app->make('session');
});

之后,您可以在控制器中使用app('session') 访问会话。

【讨论】:

    【解决方案2】:

    在添加StartSession中间件之前,将这个依赖注入到容器中:

    $app->bind(Illuminate\Session\SessionManager::class, function ($app) {
        return new Illuminate\Session\SessionManager($app);
    });
    
    $app->middleware([
        Illuminate\Session\Middleware\StartSession::class,
    ]);
    

    【讨论】:

      猜你喜欢
      • 2016-08-07
      • 2016-04-03
      • 2017-03-05
      • 2015-09-13
      • 2016-05-18
      • 2016-04-07
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      相关资源
      最近更新 更多