我无法理解 CakePHP 中的模型关联。我以前没有使用过 OOP 或 MVC,我发现它有点棘手。
这是我所拥有的:
Clubs
系统上的用户是“俱乐部”。俱乐部有多个字段,包括主要联系人 - clubs.club_primary_contact_id
Teams
俱乐部可以有一支或多支球队与之相关联。与俱乐部一样,球队也有一个主要联系人——teams.team_primary_contact_id。团队也有一个类型并链接到一个类型表 - teams.type_id。通过teams.club_id链接到俱乐部
Contacts
俱乐部可以有一个或多个与之关联的联系人。通过contacts.club_id链接到俱乐部
Types
types.id 和 types.type_name
我希望能够访问 clubs/view/x 并显示一个显示以下内容的页面:
- 俱乐部主要联系人姓名/电子邮件
- 所有俱乐部联系人
- 所有俱乐部球队,包括球队主要联系人姓名/电子邮件
TeamsController 的添加/编辑/删除功能运行良好 - 即我可以调用联系人和类型列表并将它们显示在视图表单的选择框中。
不过,我无法从 Club 模型中整齐地访问所有这些内容。
我在这里有什么协会?这是我目前在我的模型课程中所拥有的。
应用程序/模型/Club.php
public $hasMany = array(
'Team' => array(
'className' => 'Team',
'foreignKey' => 'club_id'
),
'Contact' => array(
'className' => 'Contact',
'foreignKey' => 'club_id',
'order' => 'contact_name DESC'
)
);
public $belongsTo = array (
'ClubPrimaryContact' => array(
'className' => 'Contact'
)
);
应用程序/模型/团队.php
public $belongsTo = array (
'TeamPrimaryContact' => array(
'className' => 'Contact'
),
'Club',
'Type'
);
应用程序/模型/联系人.php
public $hasManyAndBelongsTo = array(
'Team' =>
array(
'className' => 'Team'
)
);
应用程序/模型/Type.php
public $belongsTo = array (
'Team' => array(
'className' => 'Team'
)
);