Php 如何在雄辩模型中使用事务

Php 如何在雄辩模型中使用事务,php,laravel,laravel-5,Php,Laravel,Laravel 5,我在项目中使用Capsule管理数据库连接,并使用Model操作数据库,如下所示: // Init Eloquent ORM Connection $capsule = new Capsule; $capsule->addConnection(Config::getDbConfig()); $capsule->addConnection(Config::getRadiusDbConfig(), 'radius'); $capsule->bootEloquent(); 我想在对

我在项目中使用Capsule管理数据库连接,并使用Model操作数据库,如下所示:

// Init Eloquent ORM Connection
$capsule = new Capsule;
$capsule->addConnection(Config::getDbConfig());
$capsule->addConnection(Config::getRadiusDbConfig(), 'radius');
$capsule->bootEloquent();
我想在对数据库执行大型修改时使用transaction,但在类模型中没有相关的方法

由于胶囊的原因,我无法使用Illumb\Suooprt\Facades\DB,因为它报告了此错误:

PHP Fatal error:  Uncaught RuntimeException: A facade root has not been set. in
E:\Projects\ss-panel\vendor\illuminate\support\Facades\Facade.php:210

我应该如何处理它?

我在拉雷维尔之外使用雄辩的ORM

下面是我如何启动事务的解决方案

您可以添加一个基本模型extend\illumb\Database\Eloquent\model

<?php

use Illuminate\Database\Eloquent\Model as EloquentModel;

class Model extends EloquentModel
{
     public static function beginTransaction()
     {
          self::getConnectionResolver()->connection()->beginTransaction();
     }

     public static function commit()
     {
         self::getConnectionResolver()->connection()->commit();
     }

     public static function rollBack()
     {
         self::getConnectionResolver()->connection()->rollBack();
     }    
}

我在拉雷维尔外使用雄辩的ORM

下面是我如何启动事务的解决方案

您可以添加一个基本模型extend\illumb\Database\Eloquent\model

<?php

use Illuminate\Database\Eloquent\Model as EloquentModel;

class Model extends EloquentModel
{
     public static function beginTransaction()
     {
          self::getConnectionResolver()->connection()->beginTransaction();
     }

     public static function commit()
     {
         self::getConnectionResolver()->connection()->commit();
     }

     public static function rollBack()
     {
         self::getConnectionResolver()->connection()->rollBack();
     }    
}

您是否将使用Lightning\Database\Capsule\Manager作为数据库;在您的课程开始时?@iamgory尝试过,但出现了一个错误:未捕获错误:调用Null上的成员函数getConnection是否包含使用Illumb\Database\Capsule\Manager作为DB;在您的课程开始时?@iamgory尝试过,但出现了一个错误:Uncaught error:调用nully上的成员函数getConnection。我还在Slim 3框架上使用Leotent outside of Laravel。这对我来说非常有效,谢谢!同样的情况:超薄3和雄辩的外部模块。完美的我还在Slim 3框架上使用Laravel外部的雄辩。这对我来说非常有效,谢谢!同样的情况:超薄3和雄辩的外部模块。完美的