正在sonata admin上导出一对多关系



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

我有一个条目,它有许多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单元格下的产品列表,以逗号分隔的列表

相关内容

  • 没有找到相关文章

最新更新