0

我有三个模型是用户,设备,故障报告

用户表:

   id name 

   1    XXXXX 
   2    YYYYYY

设备表

 id name    
 1   Acer
 2   Fujitsu 

故障报告表:

 id   equipment_id  user_id  comment
   1      1              1       good
   2      1              1     Under repair
   3      3              2     condemned 

我使用设备模型使用 hasMnay 关系搜索设备详细信息和设备故障报告。但是我怎样才能得到用户名(谁提交了故障报告)。FaultReport 和 User 模型使用 belongsTo 关联。但是设备模型与用户模型无关。那么当我使用设备模型搜索时,如何检索与故障报告模型关联的用户名[ $this->Equipment->find('all') ]

请给我提意见

4

1 回答 1

0

从更深层次的关联模型中获取数据的最佳方式是使用Containable Behavior。在您的 AppModel 中启用它:

class AppModel extends Model {
    public $actsAs = array('Containable');
}

现在在执行查询之前,您可以设置要获取的关联数据:

$this->Equipment->contain(array('FaultReport' => array('User')));
$equipment = $this->Equipment->find('all');

此代码将允许您获取所需的所有数据。

这只是一个基本的例子。阅读文档以了解如何仅获取特定字段或在查询中包含条件。

于 2013-10-03T07:40:32.910 回答