相关疑难解决方法(0)

Eloquent错误:尚未设置外观根

我已经成功地将Eloquent用作Slim Framework 2中的独立包.

但现在我想使用Illuminate\Support\Facades\DB,因为我需要通过从2个表中获取信息并使用数据库中的Left Join和Counter来显示一些统计信息,如下所示:

use Illuminate\Support\Facades\DB;
$projectsbyarea = DB::table('projects AS p')
        ->select(DB::raw('DISTINCT a.area, COUNT(a.area) AS Quantity'))
        ->leftJoin('areas AS a','p.area_id','=','a.id')
        ->where('p.status','in_process')
        ->where('a.area','<>','NULL')
        ->orderBy('p.area_id');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Type: RuntimeException
Message: A facade root has not been set.
File: ...\vendor\illuminate\support\Facades\Facade.php
Line: 206
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

到目前为止,我已经发现,在此链接中我需要创建一个新的应用程序容器,然后将其绑定到Facade.但我还没有找到如何让它发挥作用.

这就是我开始其余的Eloquent和工作正常的方式:

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule();

$capsule->addConnection([
    'my'         =>  $app->config->get('settings'),
    /* more settings ...*/
]);

/*booting Eloquent*/
$capsule->bootEloquent();
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

固定 为@ user5972059说,我不得不在$capsule->setAsGlobal();//This is important to make work the DB (Capsule)上面添加$capsule->bootEloquent();

然后,查询执行如下:

use …
Run Code Online (Sandbox Code Playgroud)

eloquent illuminate-container

33
推荐指数
8
解决办法
5万
查看次数

Laravel 5.8:宅基地重启后尚未设置立面根

所以我想进入Laravel,这是我第一次使用Vagrant,所以这是我的问题:

我已经完成了Laravel Homestead的介绍并设置了开发箱,似乎一切正常,并且确实看到了Laravel默认应用程序。在结束这一天后,我停止了使用本地无业游民vagrant halt并尝试使用vagrant upas 重新启动它之前,然后我收到

“(!)致命错误:未捕获RuntimeException:在/home/vagrant/code/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php的第234行上未设置外观根。”

尝试访问我的Laravel应用时出现消息。由于对于一个全新的项目也会发生这种情况,因此我认为我缺少了一些非常基本的知识,有人可以告诉我如何处理Vagrant,以便在重新启动虚拟机后仍可以到达我的项目吗?

除了最初通过composer创建Laravel应用程序外,我没有编写任何代码,该错误不会弹出,因为我试图使用某些东西并且做错了。我正在使用新应用程序的默认状态,它会弹出。

vagrant laravel homestead

2
推荐指数
1
解决办法
1647
查看次数