目前我在CakePHP中有一个复杂的关联,我无法解决。
我有这些模特:
关系是:
*用户是注册用户,推介只是他们推荐给此列表的朋友。该系统包含许多不同的列表。
我要做的是在列表控制器中设置 showList 功能,以显示链接到此列表的所有用户和引荐。我一开始尝试使用它作为控制器,但没有成功:
function showList() {
$this->List->recursive = 2;
$users->List->User->find('all');
$referrals->List->Referral->find('all');
$this->set(compact('users','referral'));
$this->set('listas', $this->paginate());
}
如何才能使此关联工作并显示所需的所有数据?
答案 0 :(得分:0)
您的List_Users
模型应为ListsUsers
(复数列表和驼峰式案例,而不是下划线。)
答案 1 :(得分:0)
在打破了自己的脑袋后,似乎我找到了自己问题的答案!正确的功能是:
function showList($id = null) {
$this->List->recursive = 0;
if (!$id) {
$this->Session->setFlash(__('Invalid', true));
$this->redirect(array('action' => 'index'));
}
else {
$this->set('list', $this->List->read(null, $id));
$this->set('users', $this->List->User->find('all',
array(
'fields' => array('id','name', 'email'),
'order' => 'name ASC'
)
));
$this->set('referrals', $this->List->Referral->find('all',
array(
'fields' => array('id','name', 'email'),
'order' => 'name ASC'
)
));
}
$this->set('lists', $this->paginate());
}