У меня есть виртуальные поля в моем объекте, которые не имеют отношения к базе данных, но я использую их в своей форме.
Я хочу использовать его в прослушивателе событий preUpdate для заполнения реального поля, но preUpdate поднимается только при изменении реальных полей, а не виртуальных.
Как сделать так, чтобы событие preUpdate возникало при изменении виртуальных полей?
спасибо




Поскольку ваши виртуальные поля не имеют сопоставлений в базе данных - Doctrine даже не знает о них, потому что берет информацию о сущности из ClassMetadata, а не из самого объекта.
Вам необходимо вручную обрабатывать всю необходимую логику для этих виртуальных полей. Скорее всего вам нужно добавить слушателя к событию preFlush и реализовать свой механизм генерации событий.
Вы всегда можете попробовать изменить данные, используя события формы. Например, рассчитать данные с помощью некоторой вспомогательной службы, добавив значение в поле сопоставления вашей сущности после отправки формы.
Я думал, что есть простое решение. Но большое спасибо за ответ.