ограничить просмотр списка в yii2 без разбивки на страницы

#php #yii2

#php #yii2

Вопрос:

У меня есть Listview в yii2 для отображения элементов, в данном случае элементы представляют собой миниатюры видео, и я хочу отобразить только 5, я попытался ограничить запрос…

 $dataProvider = new ActiveDataProvider([
        'query' => Video::find()
            ->select(['video.*', 'COUNT(video_like.video_id) AS countlike'])
            ->joinWith(['likes'])
            ->groupBy(['video_like.video_id','video.video_id'])
            ->limit(5)
            ->orderBy(['countlike' => SORT_DESC])
    ]);
 

но это не работает…
мой listview:

 <?php echo yiiwidgetsListView::widget([
'dataProvider' => $dataProvider,
'pager' => [
    'class' => yiibootstrap4LinkPager::class,
],
'itemView' => '_video_item',
'layout' => '<div class="d-flex flex-wrap">{items}</div>{pager}',
'itemOptions' => [
    'tag' => false,
],
]) ?>
 

Ответ №1:

Проверьте этот документ.

Это должно сработать для вас:

 $dataProvider = new ActiveDataProvider([
         'query' => Video::find()
            ->select(['video.*', 'COUNT(video_like.video_id) AS countlike'])
            ->joinWith(['likes'])
            ->groupBy(['video_like.video_id','video.video_id'])
            ->orderBy(['countlike' => SORT_DESC]),
        'pagination' => [
            'pageSize' => 5,
        ]
    ]);
 

Комментарии:

1. Спасибо!! это работает, мне нужно только добавить запятую в конце ‘->OrderBy([‘countlike’ => SORT_DESC])’

2. Исправлено, и счастливого взлома 😉