В соответствии с вашей структурой, я думаю, есть 4 модели по одной для каждой таблицы.Первые 3 модели будут связаны с 4-й моделью как hasMany
, а 4-я модель будет относиться к этим моделям как 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) MemberHasGroupHasRole
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');
}
}