目前我正在使用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'时它失败或只输出空字符串。我已经花了很多时间在这上面,希望有人能给出一个线索。谢谢。
答案 0 :(得分:1)
嗯,你不能使用product.name,因为product是一个集合。 导出操作遍历对象并获取定义了路径的属性,并尝试对其进行字符串化。
你需要做的是一个解决方法 - 在Order类中定义一些方法 - 即getProductsAsString(),使它返回你需要的字符串,然后添加
$this->getTranslator()->trans('Products') => 'productsAsString'
但是仍然 - 它会将整个字符串放在您尝试导出的xls,csv,xml的单个单元格中。