概要
FacadeはLaravelなら初期状態でも使用できるが、Eloquentをスタンドアロンパッケージとして導入している場合はひと手間必要。
そのままFacadeを使おうとすると
RuntimeException: A facade root has not been set.
が発生してしまう。
接続設定
Eloquentを導入している次点で接続設定は行っているはずだが念の為。
リクエスト~ルーティングの間等に接続設定を記述しておく。
接続設定
$db = new \Illuminate\Database\Capsule\Manager;
$db->addConnection([
// setting
]);
$db->setAsGlobal();
$db->bootEloquent();
使用方法
DBファサードを使用したいクラスで以下のように記述する。
TestController,php
use \Illuminate\Database\Capsule\Manager as DB;
// 省略
try {
$con = DB::connection();
$con->beginTransaction();
// transaction処理
$con->commit();
} catch (\Exception $e) {
$con->rollBack();
echo $e->getMessage();
}
参考