Yii2的ActiveDataProvider中的limit没有效果

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

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

返回3条数据。

https://img2.mukewang.com/5b6fd8d60001fd9106690247.jpg

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

https://img2.mukewang.com/5b6fd8e50001e69e05680157.jpg

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

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


繁花不似锦
浏览 1628回答 2
2回答

ABOUTYOU

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

慕村9548890

ActiveDataProvider::query 只是一个 ActiveQuery, limit 会被覆盖的。如果是给定的数据应该用 ArrayDataProvider;如果是分页大小应该设置 ActiveDataProvider::pagination::pageSize。
打开App,查看更多内容
随时随地看视频慕课网APP