如何在sonataadminbundle中自定义导出

oyxsuwqo  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(271)

我正试图找到一种方法来定制我的实体管理员的导出csv。
理想情况下,我需要从实体的函数中提取数据,将其放入csv文件中。
我使用configureexportfields()函数列出了要提取的字段,并尝试使用getdatasourceiterator()方法修改请求,但导出时似乎出错。
如果有人知道如何使用默认的sonata导出
我的奏鸣曲版本:

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

关于PHP8.0.7

ogq8wdun

ogq8wdun1#

好的,我找到了这个解决方案,sonata管理导出字段和集合字段。
您必须拥有一个属性,而不仅仅是函数,并在函数返回中设置该属性。
它对我有用

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();
}

相关问题