2012-01-19 26 views
0

我有以下的模型類:CakePHP的 - 一對多的關係不是UUID的工作

class Property extends AppModel 
{ 
    var $name = 'Property'; 

    var $hasMany = array(
     'Inventory' => array(
      'className' => 'Inventory', 
      'foreignKey' => 'property_id' 
     ) 
    ); 
} 

我的數據庫架構設置,使得ID字段都設置爲CHAR(36),使CakePHP的每個生成的UUID實體。當我嘗試在我的Property實體上執行查找時,似乎沒有添加必要的連接來檢索任何相關的庫存。有沒有人有任何這方面的經驗?

謝謝!

+0

你使用蛋糕烘焙控制檯從數據庫建立模型?通常我使用的是蛋糕烘焙控制檯,並且在Char(36)上的關係和UUID上沒有問題。 – snowflake

回答

0

答案結果有些愚蠢。

我把這個從CakePHP 2.0安裝遷移到CakePHP 1.3安裝(無法更新我使用的服務器上的PHP),並且我所有的模型類仍然有大寫的第一個字符。將文件從Property.php更改爲property.php修復了它。

1

UUID將與它無關,我有一個非常類似的模型設置,並在任何地方使用UUID。

你在技術上並不需要有那些classNameforeignKey聲明,你似乎是CakePHP的約定:)

我會刪除那些行,檢查你的數據庫的實際庫存與產品ID以下。如果沒有,請發佈您正在做的find()

+0

我已將關係更改爲$ hasMany ='Inventory',並確實存在一個與property_id匹配的庫存。我的發現只是$ this-> Property-> find('all')。 SQL查詢日誌顯示它正在屬性表上執行SELECT,但在清單表上沒有JOIN或其他查詢。奇怪! – NathanGaskin