Не выбираются поля со связанной таблицы Yii2

У меня есть такой запрос

return Logs::find()
            ->leftJoin('user', 'user.id = logs.user_id')
            ->orderBy('logs.id desc')
            ->offset($limit)
            ->limit(20)
            ->all();

Он возвращает все поля таблицы logs. Но мне нужно еще вернуть логин с таблицы user. Пробовал добавил так

->select(['logs.*', 'user.username'])

не сработало. Где у меня ошибка?

Полный текст запроса с select

return Logs::find()
            ->select(['logs.*', 'user.username'])
            ->leftJoin('user', 'user.id = logs.user_id')
            ->orderBy('logs.id desc')
            ->offset($limit)
            ->limit(20)
            ->all();

Ответы (1 шт):

Автор решения: Haku Kimura

Вы можете в модели Logs создать связь с таблицей user:

public function getUser()
{
    return $this->hasOne(User::class, ['id' => 'user_id'])->select(['username']);
}

И вызвать эту связь через метод joinWith():

return Logs::find()
    ->joinWith('user')
    ->orderBy('logs.id DESC')
    ->all();

Ваш же пример сформирует правильный SQL-запрос, но, по какой-то причине, select() в Active Record для связанных таблиц не сработает.

→ Ссылка