警告:连接将被关闭,但存在活动事务

时间:2018-05-18 09:24:17

标签: mysql database transactions cakephp-3.0

我的控制器代码以这种方式构建:

$connection = ConnectionManager::get('default');
$connection->begin();

try {
   //Some logic here to create entities, validate and save them
   //This code can throw exceptions

   $connection->commit();
}
catch (Exception $e) {
   $connection->rollback();
}

这是在CakePHP中使用事务的正确方法吗?如果确实抛出了异常,则会正确回滚事务,但会出现警告:

Warning: The connection is going to be closed but there is an active transaction.

我想,我错过了一个重点,因为我不明白为什么会发出这个警告。我一直认为,commit()rollback()会关闭交易。我错了吗?

1 个答案:

答案 0 :(得分:0)

好的,所以我一直试图找到这个问题的原因,因为现在已经有2个月或3个月了,就在我问过这个问题之后,我找到了它! 这是Stackoverflow魔术,每个人。

我的异常从未被捕获,因为我错过了catch指令中的App\Controller\Exception。由于我的代码位于控制器中,因此PHP假定只捕获catch (\Exception $e) {(默认控制器命名空间)。要捕获所有异常,代码必须是

angular4

易。