我有以下的表和字段(简化了一下这里)和相关的AR模型
tbl_account
id, plan_id, name
tbl_user
id, name
tbl_plan
id, name
tbl_account_user
id, account_id, user_id, type
该FK的是显而易见的。
基本上...
一个帐户有一个计划。
用户和帐户是多对多的。
一个计划可以属于多个帐户,因此涉及到许多用户。
我想这涉及到一个计划的所有用户,所以我必须设置在规划模型如下关系...
public function getAccounts()
{
return $this->hasMany(Account::className(), ['plan_id' => 'id']);
}
public function getAccountUsers()
{
return $this->hasMany(AccountUser::className(), ['account_id' => 'id'])->via('accounts');
}
public function getUsers()
{
return $this->hasMany(User::className(), ['id' => 'user_id'])->via('accountUsers');
}