我正在尝试找到一种方法来自定义我的实体管理员的导出 csv。
理想情况下,我需要从实体的函数中提取数据并将其放入 csv 文件中。
我使用 configureExportFields() 函数列出了我想提取的字段,并且我尝试使用 getDataSourceIterator() 方法修改请求,但它似乎在导出时出错。
如果有人知道如何使用默认奏鸣曲导出来做到这一点
我的奏鸣曲版本:
sonata-project/admin-bundle 4.x-dev 9eb2c5f The missing Symfony Admin Generator
sonata-project/block-bundle 4.6.0 Symfony SonataBlockBundle
sonata-project/cache 2.1.1 Cache library
sonata-project/doctrine-extensions 1.13.0 Doctrine2 behavioral extensions
sonata-project/doctrine-orm-admin-bundle 4.x-dev 7dfe372 Integrate Doctrine ORM into the SonataAdminBundle
sonata-project/exporter 2.7.0 Lightweight Exporter library
sonata-project/form-extensions 1.9.0 Symfony form extensions
sonata-project/twig-extensions 1.6.0 Sonata twig extensions
在 PHP 8.0.7 上
答案 0 :(得分:0)
好的,我找到了这个解决方案,Sonata admin export fields with collection fields。
你必须有一个属性而不仅仅是函数,并在函数返回中设置该属性。
它对我有用
protected function configureExportFields(): array
{
return [
'Preferred area' => 'user.preferredNavigationAreaAddress',
];
}
在我的实体中:
protected string $preferredNavigationAreaAddress;
public function getPreferredNavigationAreaAddress(): string
{
$preferredArea = $this->getNavigationAreas()->filter(
function ($navigationArea) {
return true === $navigationArea->isPreferred();
}
)->first();
return $this->preferredNavigationAreaAddress = $preferredArea->getFullAddress();
}