我觉得相当不错的愚蠢张贴了这个问题,但即时通讯彻底难倒了(可能是因为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