yii2 列表视图分页,错误 url

yii2 listview pagination, wrong url

我正在创建一个显示议程项目的小部件

小部件模型:

<?php
namespace infoweb\agenda\widgets;

use Yii;
use yii\bootstrap\Widget;

class Agenda extends Widget
{
public $template = '_agenda';
public $pageSize = 4;

public function init()
{
    parent::init();
}

/**
 * @return null|string
 */
public function run()
{
    $searchModel = new Search([
        'pageSize' => $this->pageSize,
    ]);
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    return $this->render('agenda', ['dataProvider' => $dataProvider, 'template' => $this->template]);
}
}

搜索模型:

<?php

namespace infoweb\agenda\widgets;

use Yii;
use yii\data\ActiveDataProvider;

use infoweb\agenda\models\Agenda as AgendaModel;

class Search extends AgendaModel
{
public $pageSize;

/**
 * Creates data provider instance with search query applied
 * @return ActiveDataProvider
 */
public function search($params)
{
    $query = AgendaModel::find()->joinWith('translations')->where(['active' => 1]);

    $query->andFilterWhere(['language' => Yii::$app->language]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query,
        'sort' => ['defaultOrder' => ['date' => SORT_DESC]],
        'pagination' => [
            'pageSize' => $this->pageSize,
        ],
    ]);

    if (!($this->load($params) && $this->validate())) {
        return $dataProvider;
    }

    return $dataProvider;
}
}

小部件视图:

<?php
use yii\widgets\Pjax;
?>

<?php

Pjax::begin();

echo \yii\widgets\ListView::widget([
    'dataProvider' => $dataProvider,
    'itemView' => $template,
    'summary' => false,
    'itemOptions' => [
        'class' => 'agenda',
    ],
]);

Pjax::end();

列表视图:

<?php
use yii\helpers\Html;
?>
<div class="date">
    <div class="day"><?= date('d', $model->date) ?></div>
    <hr>
    <div class="month"><?= date('m', $model->date) ?></div>
</div>
<div class="content">
    <h3><?= $model->name ?></h3>
    <p><?= $model->short_description ?></p>
    <div class="pull-left"><strong>Plaats</strong>: Lorem ipsum</div>
    <div class="pull-left hidden-xs">&nbsp;&bull;&nbsp;</div>
    <div class="pull-left"><strong>Aanvangsuur</strong>: <?= date('H:i', strtotime($model->time)) ?> uur</div>
</div>
<div class="image hidden-xs hidden-sm">
    <?= Html::img($model->getImage()->getUrl('200x'), ['class' => 'img-responsive']) ?>
</div>
<div class="clearfix"></div>

问题 1(最重要):
当我点击寻呼机时,url 是 site/index?page=2&per-page=4 但它应该没有 site/index

问题二: 我正在使用 jQuery 插件 matchHeight,当我转到另一个页面时,该插件不再工作。 我应该重新初始化它吗?又如何?

编辑

$(document).on('pjax:complete', this.initMatchHeight);

问题 3:如果我更改 &per-page=4,它不起作用。 我需要每页项目的默认值,但也可以在 url

中更改它

编辑

使用'defaultPageSize' => $this->pageSize,,而不是pagesize

事实证明这真的很简单:

'pagination' => [
    'pageSize' => $this->pageSize,
    'route' => '',
],