Не знаю какой правильно сделать. Есть страница где выводиться количество записей и dropdown где указывается сколько показывать количество записей.
Я пробовал примерно так сделать
<?php Pjax::begin([
'id' => 'pjax-rows'
]) ?>
<div>
<?php foreach ($model as $posts): ?>
<div><?= Html::img('/'.$posts->image_path) ?></div>
<h3><?= $posts->title ?></h3>
<div><?= $posts->description ?></div>
<div><?= Html::a('Подробнее', \yii\helpers\Url::to(['site/post', 'id' => $posts->id])) ?></div>
<hr/>
<?php endforeach; ?>
</div>
<div><?= Html::dropDownList('countRow', null, [
10 => 'Показат 10 страниц',
25 => 'Показат 25 страниц',
50 => 'Показат 50 страниц'
], [
'class' => 'count-rows',
'data-url' => \yii\helpers\Url::to(['site/index'])
]) ?>
</div>
<?php Pjax::end() ?>
<?php
$script = <<<JS
$('.count-rows').click(function() {
let select = $(this);
location.reload(select.data('url') + '&countRow=' + select.val());
})
JS;
$this->registerJs($script);
?>
И в контроллере
public function actionIndex()
{
$query = News::find()->with('user')->where(['status' => News::NEWS_ACTIVE]);
$request = Yii::$app->request->get('countRow');
$count = $request ? $request : 1;
$pages = new Pagination(['totalCount' => $query->count(), 'pageSize' => $count]);
$posts = $query->offset($pages->offset)
->limit($pages->limit)
->all();
return $this->render('index', [
'model' => $posts,
'pages' => $pages
]);
}
Только пока что не получается так что при указание 50 допустим записей, показывалась 50 записей. Пока что reload не срабатывает так как я хочу