Symfony Sonata Admin Bundle - экспорт настраиваемых полей с шаблонами twig в XLS

Код

Код административного класса My Sonata:

class UsersAdmin extends AbstractAdmin
{
.....
    protected function configureListFields(ListMapper $listMapper)
    {

        $listMapper
            ->add('getSummaryTimeInGame','string',[
                'label'    => 'Summary time in game',
                'template' =>'AdminBundle::get_summary_time_in_game.html.twig'
            ])
            ->add('getPercentTasksDone', 'string', [
                'label'    => 'Percents tasks done',
                'template' => 'AdminBundle::get_percent_tasks_done.html.twig'
            ])
    }

   public function getExportFields()
   {
       return [
            'Name'     => 'name',
            'Surname'  => 'surname',
            'Summary time in game' => 'getSummaryTimeInGame',
            'Percents tasks done'  => 'getPercentTasksDone',
       ];
   }

.....
}

Проблема

Поля getSummaryTimeInGame и getPercentTasksDone видны в представлении списка данных, но при экспорте в XLS они пустые.

Как правильно перечислить эти поля при экспорте XLS?

Как getSummaryTimeInGame, так и getPercentTasksDone являются существующими методами в вашей связанной сущности?

AirBair 25.04.2018 09:13

@AirBair Эти методы не существуют в связанном объекте. Пользовательская логика для значений этих полей находится в шаблонах twig (задается как параметр 'template' в $ listMapper)

Dariusz Dzięgiel 25.04.2018 11:19

Вот почему это не работает! Действие экспорта не зависит от конфигурации списка. Значения в полях экспорта должны соответствовать имени атрибута или метода в связанной сущности. Согласно документу: sonata-project.org/bundles/admin/3-x/doc/reference/…

AirBair 25.04.2018 11:29

@AirBar Итак, как включить пользовательское логическое значение в экспортируемые поля? Я хотел бы использовать свой сервис в шаблоне веточки, чтобы получить выгоду. Внедрение сервиса в Entity - не лучшая практика.

Dariusz Dzięgiel 25.04.2018 11:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
4
711
1

Ответы 1

В своей пользовательской сущности (сущности, связанной с этим классом администратора) создайте эти две функции.

public function getSummaryTimeInGame{
    // return the desired calculated value.
}

public function getPercentTasksDone(){
    // return the desired calculated value.
}

После этого экспортируйте свой лист и получите эти значения в свой файл.

Другие вопросы по теме