我对如何使用Cake的约定进行设置感到困惑。我有一个用户表(相当标准:id(pk,自动增量),用户名,密码),一组表(也很标准:id,name,user_id)和一个练习表(就像医生的练习,不是比如“练习变得完美”)。练习表将由一个用户(属于一个dr组)拥有,并且将归零或更多属于该练习的其他用户(并且是标准成员)。
这是我正在思考的非常粗略绘图:
user ---(belongs to)---> group
|
|
+<----(belongs to)---- practice
| ^
| |
+-------------------(belongs to)
我理解如何确保只有“看护人”小组的成员可以拥有一个练习,并且我知道如何确保每个用户都有一个小组以及所有这些小组。
通常我会理解如何让“练习有很多用户”和“练习属于用户”。但是,我在哪里难以理解,我如何指定练习“有一个”用户,但“有很多”用户。这是因为该练习不知道用户在Cake中所属的组。而且(据我所知),我不能只说“practice.owner_id是一个匹配user.id的外键”,因为Cake不会理解这一点。
如果我弄错了,你可以提供一个解释/链接到一个文件来帮助我的路吗?谢谢你。
答案 0 :(得分:1)
我不能只说“practice.owner_id是一个匹配user.id的外键”,因为Cake不会理解这一点。
嗯,你可以......不是你想的那样。
您在练习模型上设置了belongsTo ...练习中的user_id字段将是所有者。然后,使用practice_id字段在User模型上设置另一个belongsTo。如果需要,您甚至可以在练习中设置hasMany以将其绑定到用户。只需将belongsTo和hasMany关联命名为不同的名称。在模型中调用Practice belongsTo用户关系所有者。然后,当您实际从数据库中提取记录时,您将获得一个Owner数组和一个用户数组(假设适当的$递归级别。)
回过头来看,这可能令人困惑......总结一下:
用户关联:
实践中的协会: