Yii2 фильтр GridView использовать с creocoder/yii2-taggable?

131
13 января 2020, 15:00

Установил и привязал теги к "Клиентам" по инструкции creocoder/yii2-taggable, всё работает как нужно. Как привязать фильтр к этим тегам в GridView?

view/index

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
     //...
        [
            'attribute' => 'interests',
            'format' => 'html',
            'value' => function ($data) {
                return $data->tagValues;
            },
        ],
    ],
]); ?>

и модель поиска (сгенерирована Gii)

   $query->andFilterWhere(['like', 'full_name', $this->full_name])
        ->andFilterWhere(['like', 'phone', $this->phone])
        ->andFilterWhere(['like', 'email', $this->email])
        ->andFilterWhere(['like', 'address', $this->address])
        ->andFilterWhere(['like', 'photo', $this->photo])
        // Как тут отфильтровать по тегам?
        ->andFilterWhere(['like', 'interests', $this->interests]);
    return $dataProvider;

Answer 1

решение: Нужно было добавить innerJoin к запросу поиска и указать таблицу в фильтре вот так

public function search($params)
{
    $query = Clients::find()->innerJoinWith('interest', true);
    // add conditions that should always apply here
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
    ]);
    $this->load($params);
    //...
    $query->andFilterWhere(['like', 'full_name', $this->full_name])
        //...
        ->andFilterWhere(['like', 'interest.name', $this->interest])
    return $dataProvider;
}
READ ALSO
Как заменить breadcrumb из дочерней темы?

Как заменить breadcrumb из дочерней темы?

В основной теме, не дочерней, в файле functionsphp используется код для вывода хлебных крошек без использования хуков, примерно так:

141
Система антиплагиата на сайте

Система антиплагиата на сайте

Я хочу создать на своем сайте систему антиплагиатаТо есть, перед публикацией текста, он должен проверяться на количество копипаста

117
Помогите написать запрос в mysql

Помогите написать запрос в mysql

У меня две таблицыКатегорий и продукты

131
шифрование php и windows cmd (powershell)

шифрование php и windows cmd (powershell)

Нужна помощь, существует ли общий инструмент кодирования/декодирования строк для php и консоли windows (cmd/PowerShell)? Поавторитетней с использованием...

157