CakePHP从多个表中获取数据

时间:2013-05-14 03:48:12

标签: cakephp

假设我有2张桌子。

一个是地板,另一个是商店。

内层地板: id,floor_name

店内餐桌: id,name,floor_id。

同时,协会是: 一层有很多商店,一个商店有一层。

好的,问题是..

如何直接获取floor_name数据,而我只能在我的视图中获取floor_id?

示例:我将所有店铺数据显示为
$shop['Shop']['name'], $shop['Shop']['floor_id'],  在我的/shops/main

我希望$shop['Shop']['floor_id']字段显示$floor['Floor']['floor_name']数据?可能?

2 个答案:

答案 0 :(得分:4)

甘榜,

您在表格中应该有下面提到的关联:

楼层有很多商店 商店所属楼层

现在,在您的控制器中,当您获取有关商店的数据时,您将自动获得楼层数据。

$ shops = $ this-> Shop-> read(null,$ id);

现在$ shops将包含两个数组 [ '店铺'] =>阵列(.......) [ '楼层'] =>阵列(........)

所以现在要显示楼层名称,你需要使用$ shop ['Floor'] ['floor_name']而不是$ floor ['Floor'] ['floor_name']

答案 1 :(得分:1)

在Shop模型中定义hasMany楼层关系。在您的地板模型中,定义与商店的belongsTo关系。这将允许检索您的相关数据。

通过$this->Shop->find('first', $arg)检索数据时,$arg是您的搜索选项数组,请定义以下内容

$arg['contains'] = array('Floor.name');

现在,你应该得到你想要的东西。