我有这样一个模型结构:客户端->项目->房东->属性
财产归属于房东房东归属于项目项目归属于客户
在属性控制器中,我想要属于一个特定客户端的所有属性,我该怎么做呢?我尝试过使用containable,但它总是给我所有的属性,而不是那些与它们的外键相关的属性。
$properties = $this->Property->find('all', array(
'contain' => array(
'Landlord' => array(
'Project' => array(
'conditions' => array(
'client_id' => $user['client_id'] // Passed parameter
)
),
'conditions' => array(
'Landlord.project_id' => 'Project.Id'
)
)
)
));这不是在做任何事情,它甚至似乎忽略了我所犯的任何打字错误。我在这里做错了什么?
发布于 2014-10-14 12:44:53
我用joins解决了这个问题这就是我想出来的。
$joins = array(
array('table'=>'projects',
'alias' => 'Project',
'type'=>'inner',
'conditions'=> array(
'Project.client_id = '.$user['client_id']
)),
array('table'=>'landlords',
'alias' => 'Landlord',
'type'=>'inner',
'conditions'=> array(
'Project.id = Landlord.project_id','Landlord.id = Property.landlord_id'
)),
);
$properties = $this->Property->find('all',array('joins'=>$joins,'recursive'=>-1));https://stackoverflow.com/questions/26352104
复制相似问题