Как сделать `mapped` виртуальными полями в Symfony - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть виртуальные поля в моей сущности, которые не имеют отношения к базе данных, но я использую их в своей форме.

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

Как сделать так, чтобы preUpdate событие возникало при изменении виртуальных полей?

Thanx

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Вы всегда можете попробовать изменить данные, используя события формы.Например, вычисление данных с помощью некоторого вспомогательного сервиса добавляет значение в поле сопоставленного объекта после отправки формы.

0 голосов
/ 11 февраля 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...