0

我正在使用 cakephp 开发 CMS,我有 2 个表需要通过一些参数进行过滤,并且为了优化我必须从“hasMany”模型开始进行查询,简单的方法是在“belongsTo”模型上进行。

class Client extends AppModel {
    public $actsAs = array('Containable');

    public $hasMany = array('Projects');
}

class Project extends AppModel {
    public $actsAs = array('Containable');

    public $belongsTo = array('Client');
}

我在 $conditions 数组中有 where 条件。

$this->paginate = array(
                'Client' => array(
                    'limit' => 20,
                    'conditions' => $conditions,
                    'contain' => array(
                        'Project' => array(
                            //'limit' => 20
                        )
                    )
                )
            );
$this->set('clients', $this->paginate('Client'));

通过这种方式,我得到了 20 个客户和每个客户内的所有项目。如果我取消注释该行,我会在 20 个客户中的每个客户中获得 20 个项目。

我一共想要 20 个项目,不管有多少客户(最多 20 个)。

谁能帮我?

提前致谢。

4

1 回答 1

-1

如果你想展示项目,你应该对项目进行分页;

$this->paginate = array(
    'Project' => array(
        'limit' => 20,
            'conditions' => $conditions,

            // no need to set a limit on 'client',
            // as each project belongs to only one client
            'contain' => array(
                'Client'
            )
        )
);

$this->set('projects', $this->paginate('Project'));

可能需要将Project模型添加到$uses控制器内的数组中

于 2013-04-05T23:05:49.560 回答