2016-09-05 53 views
0

我在數據庫中3個表: CakePHP的3CakePHP的數據庫協會

Cars{id, type_id,....} 
Types{id, name,....} 
Images{id, type_name,image_url,....} 

,並在型號汽車我想設置有關的圖像,實際模型關聯。 我需要從圖像中獲取image_url,值爲type_id,表格Cars和表格圖像中的值相同。這意味着我可以忘記表類型。 現在我正在使用來自控制器的連接查詢獲取圖像,但我想關聯這些模型。

查詢控制器中的樣子:

$query->join(['table' = 'Images', 
'alias' => 'i', 
'conditions' => 'Cars.type_id = i.type_id' 
]); 

這是關係類型:賽車可以有1張或多個圖像和1個圖像可以屬於1個或多個汽車。這意味着M:M。 它應該是關係belongsToMany。 我嘗試設置不同的ralations選項,從hasMany到belongsToMany它不起作用。 是否有可能做到這一點,或者它可能不是因爲一個表不包含另一個主鍵,我不得不在控制器中使用連接查詢?

謝謝你的建議。

回答

0

添加查詢包含與 「遞歸」:

$query->contain(['Cars','Types' => ['Images']]); 

,我得到我所需要的東西。 最好的問候