实例化与PDO对象句柄相同的Laravel DB对象


Instanciate Laravel DB object with same handle of PDO object

当我同时使用PDO和Laravel DB对象时,我有一个问题。我在一个有几个PDO用法的老PHP项目上工作。我尝试用数据库对象逐渐使用Laravel。但是我有许多PDO事务在我的代码,和DB Laravel使用不同的postgres句柄的PDO对象

所以Laravel DB忽略我的PDO事务。我想用我的PDO对象相同的数据库句柄实例化Laravel DB对象。

我的问题的例子:

PDO -> BEGIN transaction
PDO -> add records
LaravelDB -> Remove these records
PDO -> COMMIT transaction
Both PDO and Laravel -> Records exist. So Laravel query has no effect.

你知道怎么做吗?

我使用的是Postgresql 9.1和Laravel 4.1。

非常感谢RiggsFolly的回答,它几乎给了我解决方案。

在DB Laravel定义PDO对象

DB::connection()->setPdo($pdo);

从数据库Laravel获取PDO对象(从RiggsFolly答案)

$pdo = DB::connection()->getPdo();

文档链接

我不知道如何告诉Laravel使用您创建的pdo对象,但是有一种方法可以获得Laravel连接对象并将其用于其他数据库工作/事务

$pdo = DB::connection()->getPdo();

我知道这不完全是你想要的,但它可能有用。