save 时怎么保留查询时的 where 条件(乐观锁实现)
请不要忘记看标题
怎么保留
如
// $model = X::query()->where('field1','a')->where('field2','b')->first();
// 更新一下 :
$model = X::query()->where('pk','value')->where('version','uuid')->first();
$model->field = 'abc';
$model->save();
得到的SQL是
UPDATE x set field = 'abc' where pk = 'id';
-- 期望sql👇
-- update x set field = 'abc' where pk = 'id' and version = 'uuid'
查询时的where条件丢失。Model::where()->update()
又会不触发模型事件
覆写这个方法可一做到,然后测试下,这个方法追踪后只找到了
save()
方法在调用,影响范围可控