Jan*_*nka 19 rest pagination yii2
我正在使用AngularJS为前端开发应用程序,为后端使用Yii2.
前端需要全面的所有用户.
在Yii2的文档中,http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html 我可以读取按X-Pagination-Per-Page划分的结果:20
如何设置X-Pagination-Per-Page:ALL?
Wil*_*wan 15
如果您使用yii\rest\ActiveController控制器中的父级,则需要覆盖控制器中的操作索引.
这是我的代码
class StnkController extends ActiveController{
public $modelClass = "common\models\Stnk";
public function actions(){
$actions = parent::actions();
unset($actions['index']);
return $actions;
}
public function actionIndex(){
$activeData = new ActiveDataProvider([
'query' => Stnk::find(),
'pagination' => [
'defaultPageSize' => 2,
],
]);
return $activeData;
}
}
Run Code Online (Sandbox Code Playgroud)
aro*_*hev 14
从官方文档中查看此示例.
您可以通过更改以下pageSize参数来设置任何必要的数字pagination:
return new ActiveDataProvider([
'pagination' => [
'pageSize' => 10,
],
]);
Run Code Online (Sandbox Code Playgroud)
或者您可以pagination完全禁用并显示所有可用数据,如下所示:
return new ActiveDataProvider([
'pagination' => false,
]);
Run Code Online (Sandbox Code Playgroud)
我不认为这是一种正确的传递方式,ALL因为它直接来自pageSize(数字).
如果禁用此标头,则不会添加.
这里说如果将pageSize设置为小于1,则可以获取所有记录.
但pageSize必须在pageSizeLimit的范围内.pageSizeLimit有一个默认值[ 1,50 ],所以除非你覆盖它,否则它不能小于1.
return new ActiveDataProvider([
'pagination' => [
'pageSizeLimit' => [0, 50],
],
]);
Run Code Online (Sandbox Code Playgroud)
现在,您可以将pageSize值设置为0以获取所有记录.
例;