需要以两种方式订购(排序)内容。
1:字段"特色"可以是1或0(默认),需要显示第一个内容与特色" 1"价值,
->order(['featured DESC']);
2:field" featured_start"可以是Y-m-d DATE或NULL(默认),需要显示带日期的第一个内容,而不是NULL值。
喜欢这个
-| featured | featured_start | created |-
-----------------------------------------------------
-| 1 | 2015-12-24 | 2015-12-24 10:06:07 |-
-| 1 | 2015-12-23 | 2015-12-22 09:01:29 |-
-| 1 | NULL | 2015-12-24 09:01:29 |-
-| 0 | NULL | 2015-12-24 10:01:29 |-
-| 0 | NULL | 2015-12-20 20:20:45 |-
-----------------------------------------------------
感谢。
答案 0 :(得分:0)
<强>解决强>
->order([
'featured DESC',
'(CASE WHEN featured_start IS NULL THEN 1 ELSE 0 END),
'featured_start DESC',
'created DESC
]);
这将返回复杂的排序数据。最新的特色用户总是排在最前面,其次是其他用户。
当用户订阅到期时,通过cron的应用程序在“featured”字段中设置值0,在“featured_start”字段中设置NULL。