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升级一下试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏