我正在开发使用针对前端和Yii2的后端AngularJS的应用程序。
前端要求所有用户的全面阵列。
在Yii2的文档,http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html我可以读取结果通过X-分页每页分:20
如何设置X-分页每页:ALL?
如果您正在使用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;
}
}
请参阅从官方文档this例子。
您可以通过改变pageSize
pagination
的参数设置任何所需数量:
return new ActiveDataProvider([
'pagination' => [
'pageSize' => 10,
],
]);
或者你可以完全禁用pagination
并显示这样的全部信息:
return new ActiveDataProvider([
'pagination' => false,
]);
我不认为这是因为它直接取自ALL
通过pageSize
(这是数)正道。
在禁用此报头的情况下也不会被加入。
Here说,你可以得到所有的记录,如果你设置的pageSize小于1。
但pageSize的必须在pageSizeLimit的范围内。 pageSizeLimit具有缺省值[1,50]所以,除非你覆盖它不能小于1。
return new ActiveDataProvider([
'pagination' => [
'pageSizeLimit' => [0, 50],
],
]);
现在,您可以pageSize的值设置为0来获取所有记录。
例;
在警予/ REST / IndexAction.php变化
return new ActiveDataProvider([
'query' => $modelClass::find(),
]);
至
return new ActiveDataProvider([
'query' => $modelClass::find(),
'pagination' => false,
]);
就这样。
在yii2框架索引页上的数据项每页代码
代码插入到模型\ ModelnameSearch.php文件到$查询语句
public $pageSize=10;
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => ['pageSize' => $pageSize,],
]);