#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. Исправлено, и счастливого взлома 😉