【发布时间】:2022-04-29 17:14:53
【问题描述】:
我对 Yii2 提供的 ArrayDataProvider 对象有疑问。我有一个巨大的 API 调用,它返回超过 7k 个项目(这是一个问题,因为获取所有项目需要很长时间)。我意识到我可以告诉 API 为我分页,所以我试图将已经分页的数据实现到 ArrayDataProvider 但只在第 1 页有效,当我要求第 2 页时,我看到 API 返回接下来的 50 个项目,但在我的查看 GridView 对象不显示任何内容。
一个例子:
$dataProvider = new ArrayDataProvider([
'key' => 'id',
'allModels' => $items,
'totalCount' => self::GetNumOfItems(),
'sort' => [
'attributes' => ['id', 'name', 'email'],
],
'pagination' => [
'pageSize' => 50,
],
]);
我要求正确显示分页器的项目总数。如果我要求第 1 页一切正常,但如果更改到第 2 页或任何 gridview 没有显示任何项目。我怀疑这与已经分页的数据有关,但是,有没有办法使这项工作?
【问题讨论】:
-
添加
$items和totalCount函数。