Yii2的ActiveDataProvider中的limit没有效果

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

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

返回3条数据。

clipboard.png

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

clipboard.png

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

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

阅读 8.6k
2 个回答

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

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

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

推荐问题
宣传栏