Commit 54e35baa by Qiang Xue

Fixes #7074: `yii\data\ArrayDataProvider` did not correctly handle the case…

Fixes #7074: `yii\data\ArrayDataProvider` did not correctly handle the case `Pagination::pageSize = 0`
parent 73908eaa
...@@ -8,6 +8,7 @@ Yii Framework 2 Change Log ...@@ -8,6 +8,7 @@ Yii Framework 2 Change Log
- Bug #6940: `yii\web\Response::sendContentAsFile()` may not send correct `content-length` header (sadgnome) - Bug #6940: `yii\web\Response::sendContentAsFile()` may not send correct `content-length` header (sadgnome)
- Bug #6969: `yii\helpers\ArrayHelper::htmlEncode()` and `htmlDecode()` should not remove non-string data (qiangxue) - Bug #6969: `yii\helpers\ArrayHelper::htmlEncode()` and `htmlDecode()` should not remove non-string data (qiangxue)
- Bug #7037: `yii\console\controllers\AssetController` now correctly handles relative image URLs if source and target CSS are under same directory (klimov-paul) - Bug #7037: `yii\console\controllers\AssetController` now correctly handles relative image URLs if source and target CSS are under same directory (klimov-paul)
- Bug #7074: `yii\data\ArrayDataProvider` did not correctly handle the case `Pagination::pageSize = 0` (kirsenn, qiangxue)
- Enh #5663: Added support for using `data-params` to specify additional form data to be submitted via the `data-method` approach (usualdesigner, qiangxue) - Enh #5663: Added support for using `data-params` to specify additional form data to be submitted via the `data-method` approach (usualdesigner, qiangxue)
- Enh #6106: Added ability to specify `encode` for each item of `yii\widgets\Breadcrumbs` (samdark, aleksanderd) - Enh #6106: Added ability to specify `encode` for each item of `yii\widgets\Breadcrumbs` (samdark, aleksanderd)
- Enh #6493: Added support for the `Access-Control-Expose-Headers` header by `yii\filters\Cors` (usualdesigner) - Enh #6493: Added support for the `Access-Control-Expose-Headers` header by `yii\filters\Cors` (usualdesigner)
......
...@@ -80,7 +80,10 @@ class ArrayDataProvider extends BaseDataProvider ...@@ -80,7 +80,10 @@ class ArrayDataProvider extends BaseDataProvider
if (($pagination = $this->getPagination()) !== false) { if (($pagination = $this->getPagination()) !== false) {
$pagination->totalCount = $this->getTotalCount(); $pagination->totalCount = $this->getTotalCount();
$models = array_slice($models, $pagination->getOffset(), $pagination->getLimit());
if ($pagination->getPageSize() > 0) {
$models = array_slice($models, $pagination->getOffset(), $pagination->getLimit());
}
} }
return $models; return $models;
......
...@@ -203,7 +203,8 @@ class Pagination extends Object implements Linkable ...@@ -203,7 +203,8 @@ class Pagination extends Object implements Linkable
* Returns the number of items per page. * Returns the number of items per page.
* By default, this method will try to determine the page size by [[pageSizeParam]] in [[params]]. * By default, this method will try to determine the page size by [[pageSizeParam]] in [[params]].
* If the page size cannot be determined this way, [[defaultPageSize]] will be returned. * If the page size cannot be determined this way, [[defaultPageSize]] will be returned.
* @return integer the number of items per page. * @return integer the number of items per page. If it is less than 1, it means the page size is infinite,
* and thus a single page contains all items.
* @see pageSizeLimit * @see pageSizeLimit
*/ */
public function getPageSize() public function getPageSize()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment