我有三种型号是User,Equipment,FaultReport
用户表:
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关联。但是设备模型与用户模型无关。那么当我使用Equipment Model搜索[ $this->Equipment->find('all') ]
请告诉我
答案 0 :(得分:0)
从更深层次的关联模型中获取数据的最佳方法是使用Containable Behavior。在AppModel中启用它:
class AppModel extends Model {
public $actsAs = array('Containable');
}
现在,在执行查询之前,您可以设置要提取的关联数据:
$this->Equipment->contain(array('FaultReport' => array('User')));
$equipment = $this->Equipment->find('all');
此代码可让您获取所需的所有数据。
这只是一个基本的例子。阅读文档,了解如何仅提取特定字段或在查询中包含条件。