如何定义三个表和联结表之间的关系

时间:2015-05-06 18:29:06

标签: yii2

好的,我是yii2的新手(事实上是网页开发),所以请放轻松。

如果我在两个表之间有多对多关系,比如环境和类别,以及联结表relEnvCat,我会有这样的事情:

public function getEnvironments()
{
        return $this->hasMany(ENVIRONMENT::className(), ['PKENVIRONMENT' => 'FKENVIRONMENT'])
                    ->viaTable('RELENVCAT', ['FKCATEGORY' => 'PKCATEGORY']);
}

但如果我有三张桌子和一张交接桌,我该怎么办?使用主键:CI(pkCi),环境(pkEnvironment)和上下文(pkContext)。

然后我有一个名为relCiEnvCont的联结表,带有这些外键(fkCI,fkEnvironment,fkContext)。

但是,我不知道如何在yii上定义这种三重关系...任何人都可以帮助我吗?

据我所知,这并不多,我所能做的就是:

class CI extends \yii\db\ActiveRecord
{
....
public function getRELCIENVCONTs()
    {
        return $this->hasMany(RELCIENVCONT::className(), ['FKCI' => 'PKCI']);
    }
...
}

这一点都不好......我想也许这些关系对于Active Records来说太复杂了,我应该抛弃它而不是使用查询构建器?

0 个答案:

没有答案