xoma2
@xoma2
Программист

Yii2 Как вывести список в ListView но только с определенными критериями?

Есть список
<?= ListView::widget([
        'dataProvider' => $dataProvider,
        'itemOptions' => ['class' => 'item'],
        'itemView' => function ($model, $key, $index, $widget) {

           
            return $this->render('_list', ['model' => $model]);
        },
    ]) ?>


Так вот нужно что бы модель не вся попадала а только с например post_author = vasia
  • Вопрос задан
  • 10379 просмотров
Пригласить эксперта
Ответы на вопрос 2
abler98
@abler98
Software Engineer
В dataProvider содержится объект класса ActiveQuery, Вы его сами туда записуете, вот там и нужно указать условие, например:
...
'query' => Post::find(['user_id' => 1]),
...
Ответ написан
Комментировать
pro100ShCoder
@pro100ShCoder
программист
попробуйте просто отфильтровать $model
например:
<?= ListView::widget([
    'dataProvider' => $dataProvider,
    'itemOptions' => ['class' => 'item'],
    'itemView' => function ($model, $key, $index, $widget) {
        
        $newModel = array_filter($model, function($obj){
            if($obj->post_author  == 'vasia')
                return true;
        });

        return $this->render('_list', ['model' => $newModel]);
    },
]) ?>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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