我正在尝试根据来自间接相关模型的特定条件对名为 D 过滤结果的模型中的一些数据进行分页。我的模型看起来像:
D->C->B->A (其中每个 -> 是属于的)
我想对 D 的记录进行分页,其中 A.client = ?
这可能使用可包含的吗?这样做的首选方法是什么(使用模型 D 中的可包含导致查询每个分页项,这似乎效率低下)?
我正在尝试根据来自间接相关模型的特定条件对名为 D 过滤结果的模型中的一些数据进行分页。我的模型看起来像:
D->C->B->A (其中每个 -> 是属于的)
我想对 D 的记录进行分页,其中 A.client = ?
这可能使用可包含的吗?这样做的首选方法是什么(使用模型 D 中的可包含导致查询每个分页项,这似乎效率低下)?
是的,使用 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 元素与“解释计划”结合使用,以确保您的查询正确使用索引。