1

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

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

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

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

4

1 回答 1

2

是的,使用 Containable 可能有效;例如

// 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 元素与“解释计划”结合使用,以确保您的查询正确使用索引。

于 2011-02-23T08:07:21.810 回答