2013-05-14 161 views
0

比方說,我有2個表。CakePHP從多個表中獲取數據

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

內部地板表: ID,floor_name

店裏面表: ID,姓名,floor_id。

同時,協會是: 一層有許多店鋪,一個店鋪有一層。

確定,問題是..

我怎樣才能直接獲得floor_name數據,而我只能得到floor_id我的看法?

例:I顯示所有的店鋪數據爲
​​, 這在我/shops/main

我想$shop['Shop']['floor_id']場顯示$floor['Floor']['floor_name']數據?可能嗎?

+0

ü請在這裏添加您的查找查詢 – liyakat 2013-05-14 04:08:20

+0

這個問題有很多問題,包括奇怪的表命名約定,不正確(可能)的關聯,以及試圖從視圖中獲取數據庫數據的引用。 – Dave 2013-05-14 05:15:14

+0

你不忘記歸屬? – Dan 2013-05-14 05:35:22

回答

4

甘榜,

你應該有下文提到的協會在你的表:

樓的hasMany商店 店屬於關聯樓

現在您的控制器時,然後你會獲取你的店的數據,你會自動獲取樓層數據。

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

現在$商店將包含兩個陣列 [ '店鋪'] =>數組(.......) [ '樓層'] =>數組(........)

所以現在顯示的樓層名稱,你需要使用$店[「樓」] [「floor_name」]而不是$樓[「樓」] [「floor_name」]

1

定義在hasMany樓的關係您的商店模型。在您的Floor模型中,定義與Shop的belongsTo關係。這將允許您的關聯數據被檢索。

通過$this->Shop->find('first', $arg),其中$arg是你的搜索選項陣列檢索數據時,定義以下

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

現在,你應該得到你想要的。