2015-10-16 19 views
1

我有與類別相關的文章。我想每個類別至多得到兩篇文章。有很多到一個連接。所以我使用以下。CakePHP 3如何限制每個項目中包含的項目數量不全局

$query = $categories->find()->contain([ 
    'Articles' => [ 
     'queryBuilder' => function ($q) { 
      return $q->limit(2); 
     } 
    ] 
]); 

不幸的是,限制2接縫是全球性的。我從第一類獲得2篇文章,然後沒有與其他類別連接的文章。

如何設置每個項目的限制而不是全侷限制。

回答

0

試試custom finder

$query = $articles->find()->contain([ 
    'Authors' => [ 
      'finder' => 'limitedAuthors' 
     } 
    ] 
]); 

我還沒有用過這個,所以不知道它是否進入文章或作者表。猜猜它在AuthorsTable中。

public function findLimtedAuthors(Query $query, $options) { 
    return $query->limit(2); 
} 
+0

它在3.1中不起作用。我編輯了一下我的問題 - 現在可以更清楚了 – ironbone

+0

嘗試更新的答案。 – burzum

+0

不幸的是,這個限制仍然存在(就像我的例子)全局。 – ironbone

相關問題