2014-09-11 34 views
0

我有一張名爲Code的表格,表Code正在關注我所有的房間,建築和資產信息,並且它們都鏈接在一起。我正試圖將資產與房間和建築聯繫起來。CakePHP 2.x中的多個自我關聯

Code 
id 
code 
room_id 
building_id 
parent_id 

Site 
-> Building 
-> -> Room 
-> - > -> Asset 

當我執行我的房間調試($代碼),我得到的所有數據,但我沒有得到我的建築,即使行中存在的ID室的名稱。我正在嘗試以下自我欺騙。

public $belongsTo = array(
    'Room' => array(
     'className' => 'Code', 
     'foreignKey' => 'room_id' 
    ) 
); 

我得到的錯誤如下;

Error: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'code' in field list is ambiguous 

我列出在我的控制器和模型中的所有代碼在http://pastebin.com/L1Qc31ZB到可能進一步幫助。

我希望我已經提供了足夠的信息來幫助我解決這個問題。

謝謝。

+0

_I正在嘗試將資產關聯到房間和建築物。什麼是**資產**?它是一個代碼嗎?有沒有建築物的桌子?一個網站表?您應該更好地描述您的數據模型(即SQL表) – AgRizzo 2014-09-11 13:37:11

+0

我有AgRizzo,我存儲的是與樹結構在同一個表中。 – AshHimself 2014-09-11 13:39:30

+1

要最佳地解決問題,請顯示失敗的原始SQL。但我的猜測是你的虛擬場定義。擺脫它,然後看看模糊的錯誤是否消失。 – AgRizzo 2014-09-11 18:07:53

回答

0

AgRizzo在原始問題的評論中解決了我的解決方案。看起來像通過創建一個虛擬領域它可能會導致一些加入問題。