当请求无效页面时,Yii2分页返回最后一页


Yii2 pagination returns last page when requesting an invalid page

我使用ActiveDataProvider返回大部分工作良好的分页结果。但是,如果有(例如)5个页面,并且请求请求5个以上的任何页面,则结果集是5页,而我期望根本没有记录。

这是预期的行为吗?如果不是,我能试着解决它吗?

示例代码:

return new 'yii'data'ActiveDataProvider([
       'query' => $query,
       'pagination' => [
           'pageSize' => $perPage,
       ],
]);

简短的回答:这是预期的行为。

如果您感兴趣,Pagination类具有默认为truevalidatePage属性。如果页面验证是开启的,那么如果页面长度大于最后一页,则将页面设置为最后一页。

您可以将此参数设置为false,然后很可能您将在网格中获得零结果。