2013-06-18 35 views
0

我對cakePHP相當陌生,我試圖構建一個簡單的web應用程序。如何在cakephp中顯示來自不同相關模型的數據?

我有一個3型號:屬性,操作和類別。

我的關係是:

Category -> hasMany -> Property 
Operation -> hasMAny -> Property 

各酒店的類別(CAT_ID)的外鍵和操作(op_id)。

我想要做的是顯示每個屬性(在相應的視圖中)與類別和操作的名稱(該字段是相應表中的「名稱」),而不是ID。我怎樣才能做到這一點?

UPDATE:

所希望的輸出的一個例子是:

ID category operation description .... 

1  House  Sell  a house .... 

我現在有是

ID category operation description .... 

1  2   3   a house .... 

2和3是 '家' 的各自的ID的(類別,cat_id)和'sell'(操作,op_id)

這是類別模型的代碼:

class Category extends AppModel{ 
    public $hasMany = array(
    'Property'=>array(
     'foreignKey' => 'cat_id' 
    )); 
} 

在此先感謝您。

+0

我不明白你想要做什麼。你需要在單個查詢中獲得Category和PropertyOperation的名稱嗎? – Ziemo

+0

請寫出您的預期輸出並添加模型代碼。 –

+0

你是否也可以編寫一個查詢來獲取指示結果? – Ziemo

回答

0

找到解決方案!比我想象的容易。

首先,使用'hasMany'並不理想。我所做的是用在屬性模式的關係「屬於關聯」:

class Property extends AppModel{ 
    var $name = 'Property'; 
    public $belongsTo = array(
     'Category' => array(
      'foreignKey' => 'idCat'   
     ), 
     'Operation' => array(
      'foreignKey' => 'idOp'    
     ) 
    ); 
} 

現在的魔力:每當我在PropertiesController做一個find()方法,我已經有了一個二維陣列包含屬性數據以及它所屬的表的數據。 :

Array 
(
    [Property] => Array 
     (
     [id] => 1 
    ) 
[Category] => Array 
    (
     [id] => 2 
     [name] => House 
    ) 
[Operation] => Array 
    (
     [id] => 3 
     [name] => Sell 
    ) 

) 現在的觀點,而不是,例如,[ '財產'] [ 'idCat']我只是用[ '分類'] [ '名']和一切正常。

感謝您的幫助!

小姐:抱歉有任何誤解,不是母語。

0

屬性(ID,姓名,CATEGORY_ID,operation_id)

類別(ID,姓名)

操作(ID,姓名)

當你做一個找到的財產表遞歸= 1或2您將自動獲得所有相關數據

相關問題