【发布时间】:2020-04-19 20:13:15
【问题描述】:
我需要显示优惠券列表并根据 created_at 日期和到期状态对其进行排序。
我的优惠券表的列
id
name
price
expired_at
created_at
status
我的 laravel 查询
$coupons= Coupon::where('status', 2)->orderBy('created_at', 'DESC')->orderBy( First I will need to compare expired_at with today date here)->get();
问题是我不知道如何通过优惠券状态订购,我想在列表底部显示所有过期优惠券,在列表顶部显示正在使用的优惠券以及 orderBy created_at(最新和正在进行的优惠券在列表的顶部)
所以可能需要创建临时列来获取过期状态,然后才能对列表进行排序。 任何想法如何实现这一目标?
【问题讨论】:
-
如果您对查询有任何疑问,请尝试 ->toSql() 而不是 ->get()
-
什么是
coupon_status?你在存储expired_at吗? -
coupon_status 不是列数据库,它只是根据今天的日期,如果优惠券已经过期或不是状态,expired_at 是优惠券的过期日期
标签: php mysql laravel laravel-5 eloquent