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

Sam*_*zon 1 php postgresql pdo laravel laravel-4

当我同时使用 PDO 和 Laravel DB 对象时,我遇到了问题。我在一个旧的 PHP 项目上工作,有几个 PDO 用法。我尝试逐渐将 Laravel 与 DB 对象一起使用。但是我的代码中有很多 PDO 事务,并且DB Laravel 使用了我的 PDO 对象的不同 postgres 句柄

所以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.
Run Code Online (Sandbox Code Playgroud)

你知道一种方法吗?

我使用 Postgresql 9.1 和 Laravel 4.1。

Sam*_*zon 5

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

在 DB Laravel 中定义 PDO 对象

DB::connection()->setPdo($pdo);
Run Code Online (Sandbox Code Playgroud)

从 DB Laravel 获取 PDO 对象(来自 RiggsFolly 答案)

$pdo = DB::connection()->getPdo();
Run Code Online (Sandbox Code Playgroud)

文档链接