私はEloquentをSlim Framework 2のスタンドアロンパッケージとして使用しています。間違ったエラー:ファサードルートが設定されていません
しかし、今、私は2つのテーブルから情報を取得し、左結合を使用して、このようなデータベースからのカウンターで、いくつかの統計情報を表示する必要があるので、私が点灯\サポート\ファサード\ DBを利用したいこと:
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');
は、私は次のエラーを取得する:
Type: RuntimeException
Message: A facade root has not been set.
File: ...\vendor\illuminate\support\Facades\Facade.php
Line: 206
どのように私はそれを解決することができますか?
これまで私はthis linkに、新しいアプリケーションコンテナを作成してFacadeにバインドする必要があることを知りました。しかし、私はそれを動作させる方法を見出していません。
これは私が私の雄弁の残りの部分を開始し、細かい作業方法です:
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule();
$capsule->addConnection([
'my' => $app->config->get('settings'),
/* more settings ...*/
]);
/*booting Eloquent*/
$capsule->bootEloquent();
が、私はこれをどのように修正すればよいですか?
固定 @ user5972059が言ったように、私はちょうど$capsule->bootEloquent();
次に、クエリは次のように実行され、上記$capsule->setAsGlobal();//This is important to make work the DB (Capsule)
を追加する必要がありました:あなたがあなたのコードを変更する必要が
use Illuminate\Database\Capsule\Manager as Capsule;
$projectsbyarea = Capsule::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')
->get();
私はこれをどこに置くのですか? Laravel 5.4にアップグレードした後にエラーが発生しました: https://i.gyazo.com/a664efbe34aea117d2bbb8a8ad448951.png –