CakePHP 3:多订单导致分页?
Posted
技术标签:
【中文标题】CakePHP 3:多订单导致分页?【英文标题】:CakePHP 3: Multiple Order results in pagination? 【发布时间】:2015-12-23 11:18:55 【问题描述】:需要以两种方式对内容进行排序(排序)。
1:“featured”字段可以是1或0(默认),需要显示第一个带有“1”值的内容,
->order(['featured DESC']);
2:字段“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 |-
-----------------------------------------------------
谢谢。
【问题讨论】:
请将解决方案作为实际答案发布并稍后接受,以便将来的读者可以解决问题 - 谢谢。 【参考方案1】:已解决
->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。
【讨论】:
以上是关于CakePHP 3:多订单导致分页?的主要内容,如果未能解决你的问题,请参考以下文章