2010-05-31 197 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';