У меня проблема с пакетом 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 по умолчанию, но я не знаю, возможно ли это.