我觉得这应该是一个简单的答案。但是,我无法在文档或其他任何地方找到直接的答案。
在 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/