Thinkphp使用乐观锁的N个坑

官方的说明实在太随意,大概是因为这个功能使用的人太少吧。所以也懒得去维护和解释。

官方文档:https://www.kancloud.cn/manual/thinkphp/1783

要点:

1、精简版核心必须加上ThinkPHP/Library/Think/Model 文件夹,可以在完整版里拉过去;

2、普通的M()方法除非自己改代码否则无法使用乐观锁,必须定义模型;

3、定义好模型必须继承AdvModel方可使用乐观锁;

4、定义好模型后,如果主键不是”id”,需要在模型内自行指定好主键否则出错,原因还没排查;

protected $pk = 'uid'; //这样指定
5、使用乐观锁时必须带where…且where里面要求有主键,且不可以是”uid=?”这样的形式,必须是[“uid”=>?],否则乐观锁和你无缘;

6、最后一步才是官方轻描淡写的: 数据表里加个lock_version字段就可以了~

暂时发现这么多,发现你的lock_version字段有增长说明当前逻辑没问题了,其他写法有没有问题,建议使用的时候严谨的测试..
转载自:WBB » Thinkphp使用乐观锁的N个坑
另外一篇有关乐观锁的:tp3.2乐观锁与悲观锁

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容