car*_*rse 4 php laravel eloquent laravel-5
我觉得这应该是一个简单的答案。但是,我无法在文档或其他任何地方找到直接答案。
在 Laravel PHP 框架中,我打开数据库事务时遇到类似于以下情况的情况:
(当然,我的示例与我正在使用的现实世界的东西相比被大大简化了,所以请不要使用“你为什么要这样做”类型的响应)。这是我感兴趣的原则。
try {
if ($conditions == $criteria) {
DB::connection('oracle')->beginTransaction();
}
// blah...
Run Code Online (Sandbox Code Playgroud)
稍后在代码中,我只想检查事务是否正在进行。我的条件语句的伪代码如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)
我应该用什么实际代码来替换DB::connection('oracle')->transactionIsOngoing()?
Illuminate\Database\ConnectionInterface::transaction有一个transactionLevel属性可以返回活动事务的数量。
文档可以在这里找到:https://laravel.com/api/5.6/Illuminate/Database/ConnectionInterface.html#method_transactionLevel