我很难将我的一些模型联系在一起。用户有三种角色之一:
3个角色之间共享的信息存储在User表中。当用户想要更改他们的角色时,他们会发出必须由管理员接受的角色请求。
我正在努力的是,我无法找到一种检索用户数据的方法,而无需两次检索他们的角色或用户数据。如果我通过递归设置为2来检索User对象,那么我将获得两次用户数据,因为它也在Lecturer对象中。如果我对Lecturer对象做同样的事情,我会得到两次讲师数据,因为它也在User对象中。
答案 0 :(得分:1)
不要使用递归。在AppModel中设置public $recursive=-1;
,然后使用CakePHP's AMAZING ContainableBehavior检索您想要的任何数据。
答案 1 :(得分:0)
如果我理解你的问题,我猜你没有使用Contaible。
通过这种行为,您可以执行类似
的操作$this->User->find('all', array('contain'=>'Lecturer'));
这将检索类似于
的数组[User] => array(/*user data*/),
[Lecturer] => array(/*Lecturer data*/)
请记住将模型定义为可包含的。