我覺得相當不錯的愚蠢張貼了這個問題,但即時通訊徹底難倒了(可能是因爲IM相當新的蛋糕,有點嚇倒)..CakePHP的 - 數據檢索 - 模特協會與數據庫設計
hasOne hasOne
donors | blood_groups | donor_types
Att ------------------+-----------------------+---------------------+
DonorID (pk) | blood_group_id (pk) | type_id (pk) |
Name | group | type |
Surname | | |
type_id(fk) | | |
blood_group_id(fk)| | |
捐助模型
class Donor extends AppModel{
public $hasOne = array(
'BloodGroup'=> array(
'className' => 'BloodGroup'
),
'DonorType' => array(
'className' => 'DonorType'
)
);
我已經使用關聯的模型來填充捐助者註冊視圖中的FormHelper輸入,都很好。
然而,當我嘗試檢索捐獻記錄出現此錯誤
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'BloodGroup.donor_id' in 'on clause'
這ofcours意味着CakePHP是尋找FK donor_id內blood_groups表。然而,這種關係是相反的,fk存儲在捐助者表中。
我不知道數據庫設計是否有缺陷,或者是否需要在蛋糕中重新定義關聯。請幫忙,因爲我對CakePHP很陌生,因爲它的優點,我實際上被迫使用它。 我已閱讀關於蛋糕模型中的模型之間的關聯的所有部分,但我仍在掙扎。我怎麼去解決這個問題?
對於DonorID,這是一個粘貼的早期版本,我在實施前更改了一個。這個問題昨天發佈了兩次,但似乎沒有發佈,因此我轉發了它。這是原來的帖子: http://stackoverflow.com/questions/01/cakephp-retrieving-from-database-models-associations-database/21321330?noredirect = 1#comment32139276_21321330 – LogixMaster
無論如何,我確實得到了博客教程,並且實際上發現它非常簡單,還有我需要了解OO背景以瞭解發生了什麼(至少我是這麼認爲的)。在這兩篇文章中,你們都給出了很好的答案,現在我意識到這些約定是一個很重要的因素!而且你是唯一一個給我所需要的關係的人,也就是我錯過了hasMany rel。因此,榮譽!這就是我接受你的答案的原因 我應該離開帖子還是刪除重複的帖子? – LogixMaster