官方的说明实在太随意,大概是因为这个功能使用的人太少吧。所以也懒得去维护和解释。
官方文档: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乐观锁与悲观锁
网友评论