$query, 'pagination' => [ //分页大小 'pageSize' => \Yii::$app->request->get($pageSizeParam) ?: $limit, //设置地址栏当前页数参数名 'pageParam' => $pageParam, //设置地址栏分页大小参数名 'pageSizeParam' => $pageSizeParam, ], ]); return $dataProvider; } /** * @param $query * @param int $limit * @param string $pageParam * @param string $pageSizeParam * * @return \yii\db\QueryInterface * @throws \yii\di\NotInstantiableException */ public static function createQueryProvider($query, $limit = 10, $pageParam = 'page', $pageSizeParam = 'limit') { $param = \Yii::$app->request->get(); $pageSize = $param['limit'] ?: $param[$pageSizeParam]; if ($query instanceof QueryInterface) { return $query->limit($pageSize)->offset(($param[$pageParam] - 1) * $pageSize); } throw new NotInstantiableException('not instanceof QueryInterFace'); } /** * @param array $array * @param int $limit * @param string $pageParam * @param string $pageSizeParam * @param array $orderFields * * @return ArrayDataProvider */ public static function createArrayDataProvider($array = [], $orderFields = [], $limit = 10, $pageParam = 'page', $pageSizeParam = 'limit') { $attributes = array_keys($orderFields); $order = $orderFields; $dataProvider = new ArrayDataProvider([ 'allModels' => $array, 'sort' => [ 'attributes' => $attributes, 'defaultOrder' => $order ], 'pagination' => [ //分页大小 'pageSize' => \Yii::$app->request->get($pageSizeParam, 10), //设置地址栏当前页数参数名 'pageParam' => $pageParam, //设置地址栏分页大小参数名 'pageSizeParam' => $pageSizeParam, ], ]); return $dataProvider; } }