好的,我是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来说太复杂了,我应该抛弃它而不是使用查询构建器?