Yii2数据提供程序-排除前2个元素



如何排除数据提供程序中的前2个元素并按每3个获得其他元素?

1  2   3 4 5 6 7 8 9 0 10 12 13 14
x x  |      |     |      |        |

我需要这些结果

3 4 5
6 7 8
9 0 10
12 13 14

您可以从现有数据提供程序中检索所有模型,然后使用PHP根据需要过滤项,然后使用ArrayDataProvider从这些项中创建新的数据提供程序。

例如:

// Some prepared data provider
$dataProvider = $searchModel->search(Yii::$app->request->getQueryParams());
$dataProvider->query
    ->orderBy(['created_at' => SORT_DESC]);

// Retrieving all models
$allModels = $dataProvider->getModels();

// Some manipulations with $allModels array
// ...

// Preparing new data provider from modified array of models
$dataProvider            = new ArrayDataProvider();
$dataProvider->allModels = $allModels;
$dataProvider->key       = 'id';
$dataProvider->pagination->setPageSize($maxRows);

最新更新