官网开发文档关于事务操作的说明实例:
// Step 1: 开启事务
\PhalApi\DI()->notorm->beginTransaction('db_demo');
// Step 2: 数据库操作
\PhalApi\DI()->notorm->user->insert(array('name' => 'test1'));
\PhalApi\DI()->notorm->user->insert(array('name' => 'test2'));
// Step 3: 提交事务/回滚
\PhalApi\DI()->notorm->commit('db_demo');
//\PhalApi\DI()->notorm->rollback('db_demo');
在API层中,调用Domain对数据进行操作(也就是连接数据库)之前首先需要开启对应数据库的事务操作:
\PhalApi\DI()->notorm->beginTransaction('表名');
在这下面进行的数据表增删改查操作都会默认为事务操作,然后在需要的判断后进行事务的提交或者回滚即可:
\PhalApi\DI()->notorm->commit('db_demo');//提交
\PhalApi\DI()->notorm->rollback('db_demo');//回滚
一开始对于开发文档中的第二条数据库操作使我误解了,以为需要在Model层中进行事务操作,走了不少弯路,使本该很简单的操作变得异常复杂,网上实例很少,可能因为我的水平确实很差,琢磨了好久才搞明白如此简单的用法,如果你也与我一样困惑于此,希望对你有帮助。