Thinkphp使用乐观锁的N个坑

2018-03-02  本文已影响83人  geeooooz

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

官方文档: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乐观锁与悲观锁

上一篇 下一篇

猜你喜欢

热点阅读