Для добавления выражения SELECT при использовании связи hasMany в Yii, вам нужно использовать метод with() и анонимную функцию для определения дополнительных настроек запроса.
Предположим, у вас есть две модели: User и Post. Каждый пользователь может иметь много постов. Вот как вы можете добавить select() при использовании связи hasMany в этом случае:
// Метод в модели User public function getPosts() { return $this->hasMany(Post::class, ['user_id' => 'id']); } // Ваш запрос с select() $users = User::find() ->with([ 'posts' => function ($query) { $query->select(['id', 'title', 'content']); } ]) ->all();
В этом примере мы определяем метод getPosts() в модели User, который устанавливает связь hasMany между пользователями и их постами.
Затем, при выполнении запроса к модели User, вы можете использовать метод with() и определить анонимную функцию для связи posts. Внутри этой функции мы используем метод select() для определения выбранных столбцов поста.
В результате, при выполнении запроса $users = User::find()->with(...) мы получим все пользователей с их постами, но только с выбранными столбцами поста (id, title, content).
Вы также можете использовать другие методы и функции для дальнейшей настройки запроса, такие как where(), orderBy() и т. д., чтобы указать дополнительные условия или порядок сортировки данных.
Таким образом, вы можете добавить select() при использовании связи hasMany в Yii, чтобы получить только необходимые поля в связанных моделях.