包含/连接和条件的自定义分页

时间:2011-02-22 21:50:53

标签: php cakephp pagination cakephp-1.3 containable

我试图根据来自间接相关模型的特定条件对来自名为D过滤结果的模型中的一些数据进行分页。我的模型看起来像:

D-> C-> B-> A(其中每个 - >属于)

我想对D的记录进行分页,其中A.client =?

这是否可以使用包含?这样做的首选方法是什么(使用模型D中的可包含导致每个分页项的查询,这似乎效率低下)?

1 个答案:

答案 0 :(得分:2)

是的,使用Containable可能有效; e.g。

// function in AController

$this->paginate = array(
    'conditions' => array('A.client' => 'foo'),
    'contain' => array(
        'B' => array(
            'C' => array(
                'D'
            )
        )
    )
);

CakePHP会将A连接到B,B连接到C,C连接到D.我认为这可能是获取4个模型数据的最简单方法。至于低效率,您可以将sql_dump元素与'explain plan'结合使用,以确保您的查询正确使用索引。