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