cakephp3.x->属于许多for theree表

a8jjtwal  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(415)

我有一个设置,其中的关系是三个因素:
成员组角色
因此,一个成员可能是多个组的一部分(并且组包含多个成员),但是根据这种组合,角色也会有所不同。
一位数据库工作人员告诉我这样设置表:

member
id name

group
id name

role
id name

member_group_role
id member_id group_id role_id

如何让它与cakephp一起工作?我只成功地为两个链接表而不是三个表设置了habtm。
谢谢!

wvmv3b1j

wvmv3b1j1#

根据你们的结构,我认为有4种型号,每一张table一个。前3款车型将与第4款车型相关 hasMany 第四种模式将与这些模式相关 BelongsTo 喜欢
1) 成员

class MemberTable extends Table
{
    public function initialize(array $config)
    {
        $this->hasMany('MemberHasGroupHasRole')
            ->setForeignKey('member_id');
    }
}

2) 组

class GroupTable extends Table
{
    public function initialize(array $config)
    {
        $this->hasMany('MemberHasGroupHasRole')
            ->setForeignKey('group_id');
    }
}

3) 角色

class RoleTable extends Table
{
    public function initialize(array $config)
    {
        $this->hasMany('MemberHasGroupHasRole')
            ->setForeignKey('role_id');
    }
}

4) 成员组角色

class MemberHasGroupHasRoleTable extends Table
{
    public function initialize(array $config)
    {
        $this->belongsTo('Member')
            ->setForeignKey('member_id')
            ->setJoinType('INNER');

        $this->belongsTo('Group')
            ->setForeignKey('group_id')
            ->setJoinType('INNER');

        $this->belongsTo('Role')
            ->setForeignKey('role_id')
            ->setJoinType('INNER');
    }
}

相关问题