运行laravel照亮laravel外的数据库事务

问题描述:

require dirname(dirname(__DIR__)) . '/vendor/autoload.php'; 
require dirname(__DIR__) . '/config.php'; 

use Illuminate\Database\Capsule\Manager as DB; 

$dbc = new DB; 

$dbc->addConnection(array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => DB_NAME, 
    'username' => DB_USER, 
    'password' => DB_PASSWORD, 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '' 
)); 

$dbc->setAsGlobal(); 
$dbc->bootEloquent(); 

$ dbc-> beginTransaction();运行laravel照亮laravel外的数据库事务

给了我这个错误,

PHP Fatal error: Call to undefined method Illuminate\\Database\\Capsule\\Manager::beginTransaction() 

谁能给我提供一些帮助,如何使用laravel外胶囊和数据库事务。我无法找到任何暗示此功能无效的内容?

您需要获取连接实例以使用任何与数据库相关的方法(包括beginTransaction)。实现它们的类是Illuminate\Database\Connection。这意味着您需要从管理器获取连接实例并使用该实例:

use Illuminate\Database\Capsule\Manager as DB; 

$capsule = new DB; 

$capsule->addConnection(array(
    'driver' => 'mysql', 
    'host'  => 'localhost', 
    'database' => DB_NAME, 
    'username' => DB_USER, 
    'password' => DB_PASSWORD, 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '' 
)); 

$capsule->setAsGlobal(); 
$capsule->bootEloquent(); 

$connection = $capsule->getConnection(); 
$connection->beginTransaction();