2011-03-08 78 views
1

我已经有这些表: - PROYECTOS - Hitos - Tareas选择和相关

*一个项目所属的用户,有许多hitos和(可选)tareas

*一个HITO属于用户项目,有许多个hitos和(可选)tareas

*一个利亚属于用户项目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部分...我有一些相关的塔雷亚斯,我需要在$ hitos

有人知道如何得到它们吗?

感谢

回答

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”一部分有实际意见工作。

+0

很完美,谢谢! – ikerib 2011-03-10 15:26:02

+0

您不需要使用CakePHP执行此操作。 – Leo 2011-03-10 18:27:29

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. 
+0

谢谢你们两个,这个协会没有工作...... – ikerib 2011-03-10 15:26:33