【发布时间】:2016-02-17 16:39:10
【问题描述】:
我正在尝试使用 Yii2 ActiveRecord 方法创建一个关系查询以使用联结表。 表收藏夹包含 user_id 和 object_id 列。 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']);
}
}
但是当我试图获取最喜欢的用户时,我得到了 null。
【问题讨论】:
标签: activerecord yii2