Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';不要在Slim中间件中使用雄辩的语言_Php_Eloquent_Slim - Fatal编程技术网

Php Can';不要在Slim中间件中使用雄辩的语言

Php Can';不要在Slim中间件中使用雄辩的语言,php,eloquent,slim,Php,Eloquent,Slim,我使用的是slim framework,我只是试图检查中间件中数据库中的值,但出现了一个错误: Message: Call to a member function connection() on null 这是我的中间件代码: ->add(function ($request, $response, $next) { $user = App\User::find($_SESSION['userid']); if($user->permission == 1

我使用的是slim framework,我只是试图检查中间件中数据库中的值,但出现了一个错误:

Message: Call to a member function connection() on null
这是我的中间件代码:

->add(function ($request, $response, $next) {

    $user = App\User::find($_SESSION['userid']);

    if($user->permission == 1  ){
        $response = $next($request, $response);
    }else{
        return $response->withRedirect('noPermission');
    }

    return $response;
});
我要把这个加入我的小组

以下是我如何在dependencies.php文件中初始化eloquent的方法:

  $container['db'] = function ($container) {
    $capsule = new \Illuminate\Database\Capsule\Manager;
    $capsule->addConnection($container['settings']['db']);
    $capsule->setAsGlobal();
    $capsule->bootEloquent();
    return $capsule;
  };
可能是在建立数据库连接之前执行的代码

谢谢你的帮助


注意:我可以在我的路线中使用eloquent容器可能尚未初始化eloquent的胶囊。你可以自己做

$container->get('db');

在将其添加到容器中后执行此操作。

容器可能尚未初始化eloquent的胶囊。你可以自己做

$container->get('db');

在将其添加到容器后执行此操作。

我刚刚通过如下方式编辑Dependencies文件解决了此问题:

    $capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
$container['db'] = function ($container) {
    global $capsule;
    return $capsule;
};

我刚刚通过如下编辑Dependencies文件解决了这个问题:

    $capsule = new \Illuminate\Database\Capsule\Manager;
$capsule->addConnection($container['settings']['db']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
$container['db'] = function ($container) {
    global $capsule;
    return $capsule;
};

在中间件内部尝试此方法,但必须首先将中间件添加到应用程序中


$this->container->db

在中间件内部尝试此方法,但您必须首先将中间件添加到应用程序中


$this->container->db

您在哪里初始化eloquent?在dependencies.php文件中,我们可以看到该文件吗?我在问题描述中添加了代码,我解决了它。您在哪里初始化eloquent?在dependencies.php文件中,我们可以看到该文件吗?我在问题描述中添加了代码,我解决了它