Как сделать запрос через Query Builder, Relation связь с доп условием?

Для выполнения запроса через Query Builder с использованием Relation связи и дополнительного условия в Yii фреймворке, вам понадобится использовать метод joinWith() и передать ему параметр с условием.

Предположим, у вас есть две модели: Post, содержащая посты, и Tag, содержащая теги. Между ними существует связь "многие-ко-многим", и вы хотите получить все посты, связанные с определенным тегом, например, с тегом "Yii".

Ниже приведен пример, как сделать такой запрос:

$posts = Post::find()
    ->joinWith(['tags' => function ($query) {
        $query->andWhere(['tag' => 'Yii']);
    }])
    ->all();

В этом примере мы используем метод joinWith() для объединения связанной модели tags с основной моделью Post. В анонимной функции, переданной в качестве параметра, мы используем метод andWhere() для добавления дополнительного условия к связанной модели. В нашем случае, мы указываем, что нам нужны только те записи, у которых значение поля tag равно "Yii".

Затем, мы вызываем метод all() для выполнения запроса и получения всех соответствующих постов.

Таким образом, при использовании Query Builder и Relation связи с дополнительным условием в Yii фреймворке, вы можете легко получить нужные данные из базы данных. Убедитесь, что у вас правильно настроены модели и связи между ними для успешного выполнения запроса.