蛋糕php模型关系困难,尤指。 hasMany通过
我提前道歉...我是一个完整的noob cakephp。 因此,我很难正确地获取我的模型。 更具体地说,我在“hasMany Through”关系中遇到了最大的麻烦。 我一直在靠墙敲打我的头,并冲洗食谱,但没有发现它像我所希望的那样清晰。
我目前正在编写一个包含许多复杂关系的Web应用程序。 我将从我的表格的剥离版本开始。
关系:
现在,这里是我有点困惑。 由于用户可以分布在多个地区的多个部门,并且在每个部门内具有不同的角色(例如,地区A的DEPT A中的部门管理员和地区B中的DEPT B中的地区管理员),我选择将用户级别在departments_users表中访问。 由于我为命名模型存储了多于外键,即role_id,这似乎是hasMany through关系的候选人,但cake的文档还提到了模型关系的keepExisting选项。
所以我尝试了这个,使用蛋糕网站的例子。 留下所有初始数据表和关系,我添加了一个DepartmentPosition模型和控制器,如下所示:
user.php
public $hasMany = array('DepartmentPosition');
department.php
public $hasMany = array('DepartmentPosition');
department_position.php
public $belongsTo = array('User','Department');
我还添加了一个新的数据表:
好的,所以我得到的可能是错误地从蛋糕文档中得到的,是当我将一个用户添加到部门时,我可以包含一个role_id,并且这将全部保存在department_position数据表中,如果我saveAll()。
我不确定这是否是正确的做法。 我现在比以前更加困惑,写完了。 大声笑。 我很困惑如何正确设置这些关系。 而且,一旦我这样做了,我觉得我将无法访问相关模型的数据。 我收到错误嘉豪,我无法检索很多关联的模型数据。 伊克。 就像我说的,我不是最强的蛋糕人。
任何建议,之前我有动脉瘤?! 大声笑。 感谢负载。 任何帮助将会有很多帮助!
如果用户可以在不同的组中具有不同的角色,则可以使用HABTM或hasManyThrough表。
在Cake 2.1之前,不可能与额外的colums建立HABTM关系,(这里是role_id)。 保存时该列会丢失。 如果您将唯一参数设置为keepExisting,则不再是这种情况,但我更喜欢HABTM上的hasManyThrough关系。 我想这是一个品味问题。
User hasMany GroupRole
GroupRole belongsTo User, GroupRole belongsTo Groups, GroupRole belongsTo Role (GroupRole is hasManyThrough table)
Group hasMany GroupRole, Group belongsTo Department
Department hasMany Group, Department belongsTo District
District hasMany Department
链接地址: http://www.djcxy.com/p/64885.html
上一篇: Cake php model relationships difficulty, esp. hasMany Through