首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cakephp 3:如何在queryBuilder中为关联数据添加顺序?

Cakephp 3:如何在queryBuilder中为关联数据添加顺序?
EN

Stack Overflow用户
提问于 2015-09-04 12:46:48
回答 1查看 4.7K关注 0票数 3

这里我有一个事件字段,其中包含密码,我需要通过download_count DESC对所有密码进行排序。所以我尝试了下面的代码。它没有给我任何错误,但是desc不起作用。

代码语言:javascript
复制
 $event = $this->Events->get($id, [
                  'contain' => [
                      'EventPasswordAll.Passwords' => [
                          'queryBuilder' => function (Query $q) {
                              return $q->order(['download_count' => 'DESC']);
                          }
                      ]
                  ]
             ]);

我也试过

代码语言:javascript
复制
 return $q->order(['Passwords.download_count' => 'DESC']);

我得到了查询

代码语言:javascript
复制
SELECT EventPasswordAll.id AS `EventPasswordAll__id`, EventPasswordAll.event_id AS `EventPasswordAll__event_id`, EventPasswordAll.password_id AS `EventPasswordAll__password_id`, Passwords.id AS `Passwords__id`, Passwords.name AS `Passwords__name`, Passwords.collection_id AS `Passwords__collection_id`, Passwords.photo_count AS `Passwords__photo_count`, Passwords.download_count AS `Passwords__download_count`, Passwords.created AS `Passwords__created`, Passwords.expires_at AS `Passwords__expires_at`, Passwords.recommended AS `Passwords__recommended`, Passwords.accepted AS `Passwords__accepted`, Passwords.user_id AS `Passwords__user_id` FROM event_password_all EventPasswordAll INNER JOIN passwords Passwords ON Passwords.id = (EventPasswordAll.password_id) WHERE EventPasswordAll.event_id in (14)

如何在queryBuilder中添加关联数据的顺序?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-04 13:14:46

使用EventPasswordAll belongsTo Passwords的关联,将通过连接检索passwords表记录,如查询中所示。在本例中,不存在对Passwords的查询,因此没有调用查询生成器。

您必须为EventPasswordAll查询生成器设置顺序,如下所示

代码语言:javascript
复制
$event = $this->Events->get($id, [
    'contain' => [
        'EventPasswordAll' => [
            'queryBuilder' => function (Query $q) {
                return $q->order(['Passwords.download_count' => 'DESC']);
            },
            'Passwords'
        ]
    ]
]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32398462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档