在一个简单的CakePHP模型中,其中User hasMany Item(和Item belongsTo User) - 假设有50个用户,每个项目有10个。 我怎样才能找到()只有5个用户,每个用户最近有5个项目? 当我在查找中施加限制时,它仅限制用户数量,而不是相关项目的数量。
答案 0 :(得分:7)
在hasMany模型声明中指定 limit 属性。
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的合适道具。)
答案 1 :(得分:5)
一个选项。在您的控制器中:
$this->User->hasMany['Item']['limit'] = 1;
这将限制项目数量。我没有测试订单,但这应该有效:
$this->User->hasMany['Item']['order'] = 'Item DESC';