我需要找到最小的“优先级”值,然后将它的值设置为另一个条目,使用laravelelelounk。
有没有什么办法或最佳做法?
我的想法是:
Orders::where('user_id', '!=', $user_id)
->where('odm_id', $odm_id)
->whereExpired(0)
->min('priority')
->update(['priority' => 1]);
仅供参考:上述方法给出了一个错误,不起作用。错误消息是:
Call to a member function update() on string
1条答案
按热度按时间ruarlubt1#
问题是
min
将返回一个数字,而不是实际型号。如果您想要实际模型具有最小值,则需要如下所示:请注意,这将更新所有已过期0的记录,
odm_id
等于$odm_id
并匹配最小值。或者,您可以:
第二种方法的缺点是执行两个单独的查询,一个用于获取数据,另一个用于更新,但是这有触发模型事件(如保存等)的优点。