在奏鸣曲管理员上导出一对多关系
Posted
技术标签:
【中文标题】在奏鸣曲管理员上导出一对多关系【英文标题】:Exporting one to many relationship on sonata admin 【发布时间】:2014-11-29 03:20:10 【问题描述】:我试图在网上搜索这个问题的明确解决方案,但对于新手来说确实没有具体的解决方案。
我有一个条目,其中包含许多条目列表。在我的 EntryAdmin listMapper 中,我可以轻松地通过像
这样简单的语句列出条目->add('listings')
它只返回在 EntryListing __toString() 函数中定义的列表。
有没有办法在导出数据时通过覆盖 getExportFields() 函数来实现相同的功能,如下所示:
public function getExportFields()
return array('name','tel','email','deviceType','postedOn','createdAt','facilitator','listings');
非常感谢您的帮助
【问题讨论】:
【参考方案1】:还有另一种解决方法,您可以在您的实体中添加一个属性,该属性将获取与之相关的所有条目列表,并在 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);
为了管理类,我将getExportFields()
中的exportProducts
属性定义为
public function getExportFields()
return array(
'Products'=>'exportProducts',
....// Other properties
);
在下载的 csv 中,每个订单都包含 Products
单元格下的产品列表,以逗号分隔
【讨论】:
以上是关于在奏鸣曲管理员上导出一对多关系的主要内容,如果未能解决你的问题,请参考以下文章
Springboot 导入导出Excel ,一对多关系,复合表格合并单元格数据