时间:2021-07-01 10:21:17 帮助过:31人阅读
我需要先往Post 表中插入文章的基本信息,成功后返回 post_id。然后需要做一些数据处理,再用 post_id 和对应的数据插入到 Postmeta 表。 但时候在数据处理的过程中,有时候会失败。导致 Post 的数据插入成功了,Postmeta 表的数据插入失败。 这就是一次失败的插入。会产生很多冗余的 Post 数据。
我希望的是 postmeta 数据插入失败,前面的 post 数据也应该『抹除』,就像事务的回退。
事务是在 CI 的 model 中运行,但是据我了解到,model 主要是用来数据的增删改查。数据处理(逻辑处理)主要都在 controller中进行。
所以我不知道,我这个情况,到底应该如何处理?
谢谢大家。
情况是这样:
我需要先往Post 表中插入文章的基本信息,成功后返回 post_id。然后需要做一些数据处理,再用 post_id 和对应的数据插入到 Postmeta 表。 但时候在数据处理的过程中,有时候会失败。导致 Post 的数据插入成功了,Postmeta 表的数据插入失败。 这就是一次失败的插入。会产生很多冗余的 Post 数据。
我希望的是 postmeta 数据插入失败,前面的 post 数据也应该『抹除』,就像事务的回退。
事务是在 CI 的 model 中运行,但是据我了解到,model 主要是用来数据的增删改查。数据处理(逻辑处理)主要都在 controller中进行。
所以我不知道,我这个情况,到底应该如何处理?
谢谢大家。
直接在 Model 中写个新方法
public function postWithOther()
Controller 才不需要关心里面是否有事务。
关于 MC 两层的分工,楼主还需另外好好学习。
按我的理解,model实际上应该是一个业务逻辑层,你说的这个场景,完全可以在model中写一个方法(同时包括事务的处理)。
关于CI事务的使用参考文档:http://codeigniter.org.cn/user_guide/database/transactions.html