5

我试图在网上搜索这个问题的明确解决方案,但对于新手来说确实没有具体的解决方案。

我有一个条目,其中有很多条目列表。在我的 EntryAdmin listMapper 中,我可以轻松地通过一个简单的语句列出条目

->add('listings')

它只返回 EntryListing __toString() 函数中定义的列表。

有没有办法通过覆盖 getExportFields() 函数来实现相同的导出数据,如下所示:

public function getExportFields()
{
    return array('name','tel','email','deviceType','postedOn','createdAt','facilitator','listings');
}

您的帮助将不胜感激

4

1 回答 1

7

还有另一种解决方法,您可以在您的实体中添加一个属性,该属性将获取与该条目相关的所有条目列表,并在相关条目的 getter 函数返回__toString()中,我对订单有相同的场景,如果产品与订单相关联,我也需要列表所以我通过exportProductsorders实体中创建来做到这一点

protected $exportProducts;

public function getExportProducts()
{
    $exportProducts = array();
    $i = 1;
    foreach ($this->getItems() as $key => $val) {
        $exportProducts[] = $i . 
           ') Name:' . $val->getProduct()->__toString()() . 
           ' Size:' . $val->getProductsize() .
           .../** Other properties */;
        $i++;
    }
    return $this->exportProducts = join(' , ', $exportProducts);
}

为了管理类,我将exportProducts属性定义getExportFields()

public  function getExportFields(){
    return array(
        'Products'=>'exportProducts',
         ....// Other properties
        );
}

在下载的 csv 中,每个订单都包含Products单元格下的产品列表作为逗号分隔的列表

于 2014-12-22T05:45:46.090 回答