我有这些表格: - Proyectos - Hitos - Tareas
* 项目属于用户,并且有许多 hitos 和(可选) tareas
* hito 属于用户和项目,并且有许多 hitos 和(可选) tareas
* tarea 属于用户,项目和 hito
现在我想要检索那些属于用户的hitos以及使用此代码属于同一用户的那些tareas:
$con1=array('OR' => array(
'Hito.usuario_id'=>$this->Session->read('Usuario_id'),
'Tarea.usuario_id' => $this->Session->read('Usuario_id'),
));
$this->loadModel('Hito');
$hitos = $this->Hito->find('all',array(
'conditions' => $con1,
'group'=>array('Hito.id'),
));
我只得到Hitos部分...我有一些相关的tareas,我需要在$ hitos
有人知道如何获得它们吗?
由于
答案 0 :(得分:0)
很难说没有看到您的模型代码,但如果关联设置正确,CakePHP应检索任何给定模型的所有相关模型数据。然后可以访问它:
$oneUser = $this->read(null,$id);
debug($oneUser['Hito']); // array of all hitos for that user
debug($oneUser['Tarea']; // array of tareas for that user
debug($oneUser['User']); // the user data.
答案 1 :(得分:0)
我用“查询”做了类似的事情
$this->loadModel('Hito');
$hitos = $this->Hito->query(
"select *
from hitos as Hito
left join tareas as Tarea on (Hito.id = Tarea.hito_id)
left join usuarios as Usuario on (Hito.usuario_id = Usuario.id)
where Hito.usuario_id =" . $this->Session->read('Usuario_id') . "
OR Tarea.usuario_id=" . $this->Session->read('Usuario_id') . "
group by Hito.id");
根据您的需要更改SQL,但不要忘记将“作为Modelname”部分用于实际视图的工作。