@inkkei

Как правильно сформировать запрос SQL в Yii2?

У меня есть три таблицы: book(id, title, author) и category(id, title) связанные между собой таблицей book_category(id, book_id, category_id). Как мне сделать правильный andWhere, чтоб выводились книги, где category = $search_cat?
$books = Book::find()->orderBy('id DESC')
                    ->andWhere(['like', 'title', $search_title])
                    ->andWhere(['like', 'author', $search_author])
                    ->andWhere(['like', 'category', $search_cat]);

Связи настроены следующим образом:
В модели Book:
public function getBookCategory()
    {
        return $this->hasMany(BookCategory::className(), ['book_id' => 'id']);
    }

    public function getCategories(){
        return $this -> hasMany(Category::className(), ['id' => 'category_id']) -> via('bookCategory');
    }


В модели Category:
public function getBookCategory()
    {
        return $this->hasMany(BookCategory::className(), ['category_id' => 'id']);
    }


В модели BookCategory:
public function getCategory()
    {
        return $this->hasOne(Category::className(), ['id' => 'category_id']);
    }

    public function getBook()
    {
        return $this->hasOne(Book::className(), ['id' => 'book_id']);
    }
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы