我已经尝试过在线搜索该问题的明确解决方案,但是对于新手来说,确实没有具体的解决方案。
我有一个条目,其中包含许多EntryListing。在我的EntryAdmin listMapper中,我可以轻松地通过一条语句列出条目,如下所示:
->add('listings')
它只是返回EntryListing __toString()函数中定义的列表。
通过覆盖如下所示的getExportFields()函数,在导出数据时是否可以实现相同的方法:
public function getExportFields()
{
return array('name','tel','email','deviceType','postedOn','createdAt','facilitator','listings');
}
非常感谢您的帮助
最佳答案
有另一种解决方法,您可以在实体中添加一个属性,该属性将获取与之相关的所有条目 list ,并在getter函数中返回相关条目的__toString()
,我的订单情况相同,如果与订单相关的产品也需要该 list ,我通过在exportProducts
实体中创建orders
来做到这一点
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
单元格下的产品列表(以逗号分隔的列表)