我试着在网上搜索这个问题的确切解决方案,但对于新手来说,真的没有具体的解决方案。
我有一个条目,它有许多EntryListing。在我的EntryAdmin listMapper中,我可以轻松地通过这样简单的语句列出条目
->add('listings')
它只是返回EntryListing__toString()函数中定义的列表。
在导出数据时,有没有一种方法可以通过如下所示覆盖getExportFields()函数来实现同样的目的:
public function getExportFields()
{
return array('name','tel','email','deviceType','postedOn','createdAt','facilitator','listings');
}
我们将非常感谢您的帮助。
还有另一项工作,你可以在实体中添加一个属性,它将获得与之相关的所有条目列表,在getter函数返回相关条目的__toString()
中,我对订单有相同的场景,如果产品与订单相关,我也需要列表,所以我通过在orders
实体中创建exportProducts
来完成这项工作
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);
}
按照顺序,管理类i将getExportFields()
中的exportProducts
属性定义为
public function getExportFields(){
return array(
'Products'=>'exportProducts',
....// Other properties
);
}
在下载的csv中,每个订单都包含Products
单元格下的产品列表,以逗号分隔的列表