运行laravel可以说明laravel之外的数据库事务

Dav*_*vid 2 php 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();
Run Code Online (Sandbox Code Playgroud)

$ dbc->的BeginTransaction();

给我这个错误,

PHP Fatal error:  Call to undefined method Illuminate\\Database\\Capsule\\Manager::beginTransaction()
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一些帮助,如何在laravel之外使用胶囊和数据库事务.我找不到任何暗示这不起作用的东西?

Bog*_*dan 5

您需要获取连接实例以使用任何与数据库相关的方法(包括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();
Run Code Online (Sandbox Code Playgroud)