【问题标题】: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');
}

非常感谢您的帮助

【问题讨论】:

    标签: symfony one-to-many sonata-admin symfony-sonata sonata


    【解决方案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 单元格下的产品列表,以逗号分隔

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2018-03-22
      • 2015-02-24
      相关资源
      最近更新 更多