Yii2: Как фильтровать в пользовательском ActiveDataProvider? - PullRequest
0 голосов
/ 10 декабря 2018

Я сделал этот ActiveDataProvider:

$dataProvider = new ActiveDataProvider([
    'query' => $query->asArray(), // It is a simple SQL query.
    'key' => 'item',
    'sort' => [
        'attributes' => [
            'item',
            'quantity',
        ],
    ]
]);

Мне нужно добавить фильтры для элемента и количества , потому что он не работает (он не работаетпоиск):

item and quantity filter don't work

1 Ответ

0 голосов
/ 10 декабря 2018

Вы не должны устанавливать свой атрибут атрибутов и количество как safe в вашей SearchModel rules(), метод.

Вы должны установить их какsafe в SearchModel.

public function rules()
{
    return [
        [['item', 'quantity'], 'safe'],
    ];
}

В вашем случае ваш провайдер данных должен выглядеть просто так:

// It is not necessary to use "$query->asArray()", because your "$query" itself is object of ActiveQuery
    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'key' => 'item',
    ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...