【发布时间】:2014-08-11 17:10:27
【问题描述】:
我在 CakePHP 2.x 中的 CakePHP belongsTo 和 hasAndBelongsToMany 关系有问题
示例情况
表用户
id
organisation_id
表组织
id
name
表user_organisation_permissions
id
user_id
organisation_id
用户模型
hasAndBelongsToMany(Organisation);
belongsTo(Organisation)
一个用户属于一个组织,但拥有多个组织的权限,导致如下冲突:
$aUser = $this->User->findById(1);
print_r($aUser);
// Output
# With the belongsTo relation
array(
'User' => array(
'id' => 1,
'organisation_id' => 1
'name' => 'Test User'
),
'Organisation' => array(
'id' => 1,
'name' => 'Test organisation'
)
);
# With the hasAndBelongsToMany relation
array(
'User' => array(
'id' => 1,
'organisation_id' => 1
'name' => 'Test User'
),
'Organisation' => array(
1 => array(
'id' => 1,
'name' => 'Test organisation'
),
2 => array(
'id' => 1,
'name' => 'Test organisation'
)
)
);
# When both relations are enabled it doesn't work
有人有解决这个冲突的办法吗?
对于这种冲突是否有“本机”CakePHP 解决方案?
【问题讨论】:
-
您指的是什么“冲突”? ps,请务必提及您的确切 CakePHP 版本!
-
好的,我补充了一些解释。
-
@ndm 所以在他们展示的第一个例子中,发件人和收件人就像“虚拟”模型?
-
嗯,根据您所说的“虚拟”的含义,您可能可以这样称呼它,虽然实际上并没有进行任何虚拟化,但它就像将一个对象的引用一分为二存储一样虚拟具有不同名称的变量。
Sender和Recipient只是别名,将用于代替实际的型号名称。
标签: php cakephp relationship cakephp-model