Как правильно сделать фильтры yii2?

Я бы хотел сделать выборку книг по жанрам. То есть, что бы после выбора двух жанров выводились книги и с одним жанром и со вторым и с двумя вместе жанрами (ну и тоже самое при большем кол-ве). Не могу понять именно как запрос составить.
$query->andFilterWhere(['like', 'genres', $this->genres])
            ->andFilterWhere(['like', 'tags', $this->tags])
            ->andFilterWhere(['like', 'joint_authors', $this->joint_authors])
            ->andFilterWhere(['like', 'publishing', $this->publishing]);
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
У Вас в фильтре будет массив, который Вы потом прогоните через foreach и сформируете верный запрос, типа:
if(is_array($this->genres) and !empty($this->genres)){
    $genres_query = ['or'];
    foreach($this->genres as $one){
        $genres_query[] = ['like', 'genres', $one];
    }
}
$query->andFilterWhere($genres_query)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы