SonataAdminBundle出口商问题涉及多对多

时间:2014-09-17 04:07:51

标签: symfony export sonata-admin

目前我正在使用sonata admin bundle导出“订单”数据,如何导出具有多种关系的数据?我看到了一个post,它有点帮助,但我仍然不确定如何在多对多的关系中获取数据。

这是我的代码:     public function getExportFields(){

    return [
        $this->getTranslator()->trans('Order Number') => 'id', 
        $this->getTranslator()->trans('First Name') => 'customer.First_name',
        $this->getTranslator()->trans('Last Name') => 'customer.Last_name',
        ...]

这很好,但是当我尝试获取'OrderToProduct'或'product.name'时它失败或只输出空字符串。我已经花了很多时间在这上面,希望有人能给出一个线索。谢谢。

1 个答案:

答案 0 :(得分:1)

嗯,你不能使用product.name,因为product是一个集合。 导出操作遍历对象并获取定义了路径的属性,并尝试对其进行字符串化。

你需要做的是一个解决方法 - 在Order类中定义一些方法 - 即getProductsAsString(),使它返回你需要的字符串,然后添加

$this->getTranslator()->trans('Products') => 'productsAsString'

但是仍然 - 它会将整个字符串放在您尝试导出的xls,csv,xml的单个单元格中。