2010-05-31 143 views
2

限制的記錄數在一個簡單的CakePHP的模型,其中用戶的hasMany項目(和Item屬於關聯用戶) - 假設50個用戶,每個有10個項目。 我怎樣才能找到()只有5個用戶,每個用戶擁有最新的5個項目? 當我在查找中施加限制時,它僅限制用戶數量,而不是相關項目的數量。如何從相關模型

回答

7

只是規格書你的hasMany模型聲明限制屬性。

var $hasMany = array(
    'Comment' => array(
     'className'  => 'Comment', 
     'foreignKey' => 'user_id', 
     'conditions' => array('Comment.status' => '1'), 
     'order' => 'Comment.created DESC', 
     'limit'  => '5', 
     'dependent'=> true 
    ) 
); 

(相應的道具到我偷從這個代碼CakePHP Book page。)

+0

謝謝丹。我必須跳過這部分文檔:) – azv 2010-06-01 13:27:06

+0

鏈接已過期。新的鏈接 - http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany – Sp0T 2016-02-19 11:52:47

+0

當我使用限用的hasMany然後每一行單獨的查詢將會被執行。但是我想只對hasmany執行1個查詢,限制爲 – Lakhan 2016-05-10 18:46:41

5

的選項。在您的控制器中:

​​

這會限制物品的數量。我沒有測試訂單,但這應該工作:

$this->User->hasMany['Item']['order'] = 'Item DESC';