首页 > Yii2的ActiveDataProvider中的limit没有效果

Yii2的ActiveDataProvider中的limit没有效果

看下图代码,使用ActiveDataProvider返回的数据竟是20条数据,而不是3条,而用

$modelClass::find()->limit(3)->orderBy(['id' => SORT_DESC])->all()

返回3条数据。

谢谢各位解答,找到原因,并解决了

看了Pagination.php的源码才知道,如果不设置pagination,就设置默认的,设置了pageSize会影响sql语句的limit。

https://github.com/yiisoft/yii2/blob/master/framework/data/Pagination.php


ActiveDataProvider::query 只是一个 ActiveQuery, limit 会被覆盖的。

如果是给定的数据应该用 ArrayDataProvider;
如果是分页大小应该设置 ActiveDataProvider::pagination::pageSize


不应该呀,可能是BUG?或者你的版本太低了?用composer升级一下试试

【热门文章】
【热门文章】