Как в Yii2 в dataProvider указать условие выбора?

Я создаю gridView на основе массива:
GridView::widget([
        'dataProvider' => new ArrayDataProvider([
            'allModels' => $user['friends']['items'],
            'sort' => [
                'attributes' => ['id', 'username', 'email'],
            ]
        ]),
        'columns' => [
        ...

А мне необходимо выбрать только таких $user['friends']['items'], где выполняется условие
isset($user['friends']['items']['set_phone']);

Как это сделать?
  • Вопрос задан
  • 814 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
DataProvider - не отвечает за условие выбора, Вам нужно фильтровать массив до его передачи в DataProvider, например с помощью array_filter
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@devian3000
Не надо использовать array_filter на DataProvider!

Откройте документацию, там всё написано
nix-tips.ru/yii2-razbiraemsya-s-gridview.html

Если в примере, то используйте searchModel!

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'rowOptions'=>function ($model, $key, $index, $grid){
        $class=$index%2?'odd':'even';
        return [
            'key'=>$key,
            'index'=>$index,
            'class'=>$class
        ];
    },
]); ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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