Как изменить значения формы на PreSetData? - PullRequest
0 голосов
/ 02 мая 2019

У меня проблема с пакетом easy admin для symfony, я не знаю, как ее решить.

У меня есть сущность. Я хочу контролировать, как данные объединяются с простой формой администратора по умолчанию, форма, которая будет использоваться в режиме редактирования. Лучший способ - использовать прослушиватель событий для события PRE_SET_DATA, запускаемого в формах Symfony, но я не знаю, как этого добиться, если это возможно. Итак, я попробовал два обходных пути:

1 / Я попытался использовать легкое административное событие PRE_EDIT, чтобы изменить значения сущности до слияния ее данных с формой. Но я не могу получить доступ к значению сущности в событии PRE_EDIT.

// In my service.yaml
App\EventListener\FileMover:
        tags:
               {name: kernel.event_listener, event: easy_admin.pre_edit, method: preEdit }


// My listener
public function preEdit(GenericEvent $event)
    {
        // I can't find the entity value in $event
        dd($event);
    }

2 / Я попытался использовать собственный контроллер для управления видом редактирования. У меня есть доступ к объекту, который будет подлежать редакции, что хорошо, но я не могу получить доступ к форме по умолчанию. Поэтому я не могу управлять слиянием между сущностью и формой.

// Overriding function that manage the edit form
protected function createEditForm($entity, array $entityProperties)
    {
        dd($entity); 
        // How to access the default form in order to set the entity data into itn and return it ?
        return $form;
    }

3 / Было бы неплохо добавить прослушиватель событий в форму easyAdmin по умолчанию, но я не знаю, возможно ли это.

...