如何使用Backpack Laravel的export button导出所有数据行?
Laravel Backpack 导出全量用户数据解决方案
默认Backpack的export button仅导出当前分页的展示条目,所以默认配置下只会导出第一页的10条数据,无需手动点击show all即可导出全量数据的实现方式如下:
方法一:重写导出查询逻辑(推荐)
该方式不会影响原有列表的分页展示,仅修改导出环节的查询逻辑:
- 打开你项目中的
UserCrudController控制器 - 在控制器类中添加如下重写导出的方法:
protected function export() { $this->crud->hasAccessOrFail('export'); // 直接获取无分页的全量查询结果,原有列表的筛选条件会自动保留 $entries = $this->crud->query->get(); // 调用原有导出格式化逻辑返回导出文件 return $this->crud->get('export.buttons')->first()->export($entries); }
- 保存代码后刷新列表页,点击导出按钮即可直接获取全量用户数据。
方法二:修改默认导出分页限制
如果你不需要保留列表的默认分页条数,也可以直接修改导出相关配置:
- 在
UserCrudController的setupListOperation()方法中添加如下配置:
// 开启导出全量数据开关 $this->crud->set('export.all', true); // 可选:如果需要也可以直接修改列表默认展示条数为极大值 $this->crud->set('per_page', 99999);
注意:如果你的users表数据量超过10万,建议额外增加分批导出逻辑,避免服务端内存溢出导致导出失败。
内容的提问来源于stack exchange,提问作者Abdo Rabah
相关产品推荐
相关产品推荐

