我有一个连接模型UserCommission,它连接用户模型和委员会模型。 用户模型属于组织模型。而组织模型有很多用户模型。
在我的模型UserCommission中,$this->find('all')
我得到了这个数组:
array(
(int) 0 => array(
'UserCommission' => array(
'id' => '1247',
'user_id' => '872',
'commission_id' => '13'
),
'User' => array(
'id' => '872',
'organisation_id' => '6', // I need data related to Organisation model
),
'Commission' => array(
'id' => '13',
'nom' => 'SALARIES CE'
)
),
...
)
如何从Organization模型中获取数据,以便返回的数组如下:
array(
(int) 0 => array(
'UserCommission' => array(
'id' => '1247',
'user_id' => '872',
'commission_id' => '13'
),
'User' => array(
'id' => '872',
'organisation_id' => '6',
),
'Commission' => array(
'id' => '13',
'nom' => 'SALARIES CE'
),
'Organisation' => array(
'id' => '6',
'nom' => 'The Organisation #6'
)
),
...
)
模型关联:
用户所属组织
组织有很多用户
用户hasAndBelongsToMany佣金(与UserCommission)
Commission hasAndBelongsToMany User(with UserCommission)
UserCommission属于用户
UserCommission属于委员会
模型表:
用户(id; organisation_id;用户名; ...)
佣金(id; commission_name; ...)
组织(id; organisation_name; ...)
UserCommission(id; user_id; commission_id; ...)
答案 0 :(得分:0)
如果正确配置了关系,您可以使用:
$User->recursive=2;
$User->find('all')
这种解决方法的问题在于,您将获得嵌套在用户数组中的组织信息,而不是在同一级别,这是非常糟糕的资源。这实际上取决于您的数据库中有多少组织,但有时最好只是进行第二次查询以检索所需信息,而不是只是为了一次性进行大量查询。