У меня есть user
и post
стола с oneToMany
соотношения:Yii2, найти пользователь, которые имеют активный пост
В сообщении Модели:
public function getUser() {
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
И в модели пользователя:
public function getPosts() {
return $this->hasMany(Post::className(), ['user_id' => 'id']);
}
Я хочу найти всех пользователей, у которых есть хотя бы активный пост. Но у меня нет идеи.
Моя цель SQL:
SELECT * FROM `user`
where id in (select user_id from post where status = 1)
Что мне делать?
User::find()->where(...
уведомление: важно, что создано с находкой(), потому что я хочу использовать его в модели поиска
Спасибо.
В ActiveQuery :: метод можно использовать псевдоним вместо 'из ([ 't1' => User :: getTableSchema () -> name]) '== >>' User :: find() -> alias ('t') ' – ingenious
@ingenious Спасибо за дополнение :). – HeadwindFly