Yii2 hasMany()和via()或viaTable()activeRecord方法语法

时间:2016-02-17 16:39:11

标签: activerecord yii2

我正在尝试使用Yii2 ActiveRecord方法创建关系查询以使用联结表。 表收藏夹包含user_id和object_id cols。 col object_id链接到user.id,col user_id链接到user.id.它是1到N的关系。

我想创建这样的关系: user.id - > favorites.user_id&& favorites.object_id - > user.id。

class User extends ActiveRecord
{

public function getFavorites()
{
    return $this->hasMany(Favorite::className(), ['user_id' => 'id' ]);
}

public function getFavoriteUsers()
{
    return $this->hasMany($this::className(), ['user_id' => 'object_id', 'subject_id' => Subjects::PROFILE ])->via('favorites');
}

public function getFavoriteUsersViaTable()
{
    return $this->hasMany($this::className(), ['user_id' => 'object_id', 'subject_id' => Subjects::PROFILE ])->viaTable('{{%favorites}}', ['object_id' => 'id']);
}


}

但是当我尝试获取喜欢的用户时,我会变为空。

1 个答案:

答案 0 :(得分:0)

modbv