在没有分页的情况下限制yii2中的Listview

limit Listview in yii2 without pagination

我在 yii2 中有一个 Listview 来显示项目,在这种情况下项目是视频缩略图,我只想显示 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])
    ]);

但是没用... 我的列表视图是:

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

勾选这个doc

这应该适合你:

$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,
        ]
    ]);