【发布时间】:2018-08-21 07:55:29
【问题描述】:
我需要找到最小的“优先级”值,然后使用 laravel eloquent 将它的值设置为另一个条目。
有什么方法可以做到这一点或有什么最佳做法吗?
我的想法:
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
【问题讨论】:
-
我觉得不错。想不出任何其他更好的方法来做到这一点。
-
@Chris 是的,它看起来不错,但它不起作用。
-
whereExpired()函数有什么作用? -
这取决于您的要求。如果您只想获得最低优先级,则不要添加额外的检查。如果您的结果取决于其他列值,那么您已经采用了正确的方式。接下来,您可以通过在 Order 类中定义方法来最小化查询。
-
@Chris WhereExpired() 是使用 where('expired', 1) 的更好方法
标签: php mysql laravel orm eloquent