我们有这个项目Yii2和AngularJS。问题是Yii只从表中返回20个项目。我去了供应商并创建了我修改过这行的分页文件:
public $defaultPageSize = 20;
public $pageSizeLimit = [1, 50];
到
public $defaultPageSize = 0;
public $pageSizeLimit = [0, 50];
这是显示表中所有数据的唯一方法,但我需要在供应商文件之外的文件中执行此操作。
我该怎么做? 我需要修改哪些文件?
我在配置中尝试但它不起作用。我必须全局设置,因为在我们显示的所有数据中我都有同样的问题。
谢谢你的帮助。
答案 0 :(得分:3)
最简单的方法是禁用分页...将分页设置为false,例如:如果你正在创建一个dataProvider,你可以
return new ActiveDataProvider([
'pagination' => false,
]);
或在与您的问题相关的模型中,您可以设置分页
答案 1 :(得分:1)
@scaisEdge's answer是正确的,我认为这是避免意外查询真正大型数据集的最佳方法。
但是,您可以使用dependency injection设置分页的初始值。在您的输入脚本中添加:
\Yii::$container->set('yii\data\ActiveDataProvider', ['pagination' => false]);
请注意,它是在数据提供者yii\data\ActiveDataProvider
而非yii\data\Pagination
中设置的,因为在分页中设置它会影响使用分页的所有内容。