第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何限制每個(gè)記錄/組包含的關(guān)聯(lián)?

如何限制每個(gè)記錄/組包含的關(guān)聯(lián)?

我有一個(gè)模型,文章,其中有很多摘要。我想加載10篇最新文章,對(duì)于每篇文章,要加載點(diǎn)數(shù)最多的摘要。我的函數(shù)如下所示:public function getArticles($category, $viewName) {            $subArticles = $this->Articles->findByCategory($category)->contain([                    'Abstracts' => function ($q) {                            return $q                                    ->select(['body', 'points', 'article_id'])                                    ->where(['Abstracts.approved' => true])                                    ->limit(10)                                    ->order(['Abstracts.points' => 'DESC']);                    }            ])            ->limit(10)            ->order(['Articles.created' => 'DESC']) ;            $this->set( $viewName . 'Articles', $subArticles );    }我得到的結(jié)果雖然不是我想要的。查看SQL,首先CakePHP獲取類別中所有內(nèi)容的article.id(精細(xì))。然后,CakePHP使用這10條文章進(jìn)入摘要表。它剛找到了id,并要求獲得投票數(shù)最高的10條摘要(屬于那些文章)。問題是我希望每篇文章有1個(gè)摘要,而不是該類別中任何文章的10個(gè)摘要。我怎樣才能解決這個(gè)問題?謝謝!編輯ndm建議這與在包含的模型上使用limit()重復(fù),因此我在那里嘗試了解決方案。即,我將其添加到我的模型中: $this->hasOne('TopAbstract', [            'className' => 'Abstracts',            'foreignKey' => 'abstract_id',            'strategy' => 'select',            'sort' => ['TopAbstract.points' => 'DESC'],            'conditions' => function ($e, $query) {            $query->limit(1);            return $e;    } ]);然后,我嘗試使用contain(['TopAbstract'])查找按類別分類的Articles,只有這樣才能殺死我的SQL。它死得很慘:Error: SQLSTATE[HY000]: General error: 1 near ")": syntax error調(diào)試甚至沒有顯示殺死它的查詢,因此我不確定如何調(diào)試該查詢?編輯跟自己說一點(diǎn),但是錯(cuò)誤肯定是在hasOne的“條件”部分中。我將其取出,效果很好。無法找到一個(gè)示例,說明應(yīng)該如何在Internet上看。任何人有任何想法嗎?
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 437 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)