2010-09-28 121 views
0

我有兩個表用戶位置CakePHP的模型關係

用戶ID(主)和位置字段/列

位置都有編號(主)和城市列現在

我希望通過user.location與location.city 將這兩個表聯繫起來。我該如何做呢?considring city不是主鍵,而是獨特的。 我正在使用cakephp 1.2。

而且在mysql中我可以關聯/加入無主鍵,但表的唯一密鑰

回答

1

無論是在飛行綁定,您可以創建模型或加入與非主鍵如下

public $hasOne = array(
    'RelatedModel' => array(
     'className' => 'RelatedModel', 
     'foreignKey' => false, 
     'conditions' => array(
      '`MainModel`.`random_field` = `RelatedModel`.`some_field`' 
     ) 
    ) 
} 

訣竅是外鍵設置爲false,以便蛋糕不會嘗試任何事情,然後設置條件manualy,還要注意的是,字段excaped和一個字符串作爲像

'`MainModel`.`random_field`' => '`RelatedModel`.`some_field`' 

將輸出

SELECT ..... FROM ... LEFT JOIN ... ON (`MainModel`.`random_field` = '`RelatedModel`.`some_field`') 

這將嘗試加入一個=='RelatedModel行。 some_field'(實際的字符串)

+0

會試試看,那麼我的問題的一部分mysql怎麼樣 – aWebDeveloper 2010-09-29 05:49:16

+1

你試過嗎?你不認爲如果mysql不能這樣做,我會這樣說,而不是給你一大堆代碼。你可以加入任何你喜歡的東西 – dogmatic69 2010-09-29 13:45:33

+0

感謝您的洞察力 – aWebDeveloper 2010-09-30 05:33:10