运行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();