如何在Silverstripe CMS中将大量子对象下载为CSV?

时间:2014-10-12 22:05:55

标签: php silverstripe

我正在开发一个Silverstripe项目,该项目有一个Batch>物品关系。

批次最多可包含50,000个项目。

这就是关系的设定方式:

class Item extends DataObject {

  private static $has_one = array(
      'Batch' => 'Batch'
  );

class Batch extends DataObject {

  private static $has_many = array(
      'Items' => 'Item'
  );

class BatchAdmin extends ModelAdmin {

  private static $managed_models = array(
      'Batch',
      'Item'
  );

本机使CMS用户能够从CMS下载所有项目作为CSV格式。

我试图找出两件事:

  1. 如何确保大量下载不会因内存/脚本时间不足等原因而失败?

  2. 如何添加"导出到CSV"按钮到每个批次只下载该批次中的项目为CSV?

1 个答案:

答案 0 :(得分:2)

要将{em>导出到CSV 按钮添加到导出相关Batch的{​​{1}}按钮,我们会向批处理CMSFields添加Items

GridFieldExportButton