Как обновить поле в объекте внутри showMapper - PullRequest
0 голосов
/ 24 января 2019

Я создаю область базы данных контактов в сонате, и у меня есть флаг «чтения» на объекте.Когда пользователь нажимает на действие show объекта, я хочу, чтобы этот флаг чтения был установлен в true.Я не вижу никаких событий внутри showMapper в Sonata, которые позволяют это.

Кто-нибудь сумел сделать это или знает, возможно ли это вообще?

$showMapper
    ->add('name')
    ->add('subject')
    ->add('message')
    ->add('email','email');

Хотя я не показываюфлаг чтения, я хочу, чтобы при вызове showMapper это значение автоматически устанавливалось в значение true.

Спасибо

1 Ответ

0 голосов
/ 24 января 2019

Я нашел ответ для этого, соната запускает события во всех различных типах конфигураций администратора, одно из этих событий называется 'sonata.admin.event.configure.show', оно запускается при редактировании или показе администратора.

Это идеально подходит для того, что мне нужно, поэтому я создал прослушиватель для прослушивания этого события, а затем выполнил редактирование моей сущности в нем.

Единственное ограничение заключается в том, что он запускает все редактирование / шоу, поэтому янужно проверить в слушателе, какой администратор это, и обесценить его, если он не тот, который я хочу - было бы неплохо для обхода этого.

...