php - Laravel Eloquent (PDO) : Check that Transaction is Active

标签 php laravel laravel-5 eloquent

我觉得这应该是一个简单的答案。但是,我无法在文档或其他任何地方找到直接的答案。

在 Laravel PHP 框架中,我在打开数据库事务时遇到类似以下情况:

(当然,我的例子是从我正在处理的现实世界中大大简化的,所以请不要做出“你为什么要这样做”这样的回答)。这是我感兴趣的原理。

try {

    if ($conditions == $criteria) {
       DB::connection('oracle')->beginTransaction();
    }
    // blah...

在代码的后面,我只想检查交易是否正在进行。我的条件语句的伪代码看起来像这样:

    if ( DB::connection('oracle')->transactionIsOngoing() ) {

        // do some stuff with the on-going transaction
        DB::connection('oracle')->commit();

        // if I were to execute "DB::connection('oracle')->transactionIsOngoing()"
        // again here it would return FALSE, because the commit command has
        // completed the open transaction

    }

我应该使用什么实际代码来替换 DB::connection('oracle')->transactionIsOngoing()

最佳答案

Illuminate\Database\ConnectionInterface::transaction 有一个 transactionLevel 属性,它返回事件事务的数量。

可在此处找到文档:https://laravel.com/api/5.6/Illuminate/Database/ConnectionInterface.html#method_transactionLevel

关于php - Laravel Eloquent (PDO) : Check that Transaction is Active,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49813977/

相关文章:

php - 如何从阵列上的数据库获取信息?

MySQL/MariaDB/SQLite : DISTINCT CONCAT

php - yii2 外键下拉

php - 从 PHPUnit 测试访问数据库

php - 如何使用codeigniter从 Controller 为 View 的标签赋值

laravel - 使用 Maatwebsite/Laravel-Excel 生成 csv 文件如何使标题返回动态数组

laravel - 使用自定义包的配置文件而不在 Laravel 5 中发布。*

php - 每个复选框有多个值

Laravel Hyn\Multi-Tenant Database [租户] 未配置

php - 在 laravel 5 的 .env 文件中哪里插入 SES key 、 secret 、SMTP 用户名、SMTP 密码?