У меня есть подписчик событий, который содержит два метода событий жизненного цикла: prePersist и preUpdate. PrePersist работает так, как ожидалось — я изменяю документ, и изменения отражаются позже, когда я извлекаю документ. Однако preUpdate не работает должным образом. Вот как это выглядит в основном:
/**
* Also update the foo code when the bar profile is updated.
* @param LifecycleEventArgs $args
*/
public function preUpdate(LifecycleEventArgs $args)
{
$document = $args->getDocument();
if ($document instanceof BarProfile) {
$document->setFooCode('Salamanders');
}
}
Если я создам документ и установлю для его fooCode значение «заполнитель» в функции perPersist, то, когда я получу документ позже, его fooCode будет «заполнителем». Если я затем обновлю его и снова извлеку, то я ожидаю, что его fooCode будет «Саламандры». Тем не менее, это все еще «заполнитель». Я даже пытался поместить туда error_log()
материал, и он записывает материал в журналы, чтобы я мог видеть, что этот метод выполняется.
Есть ли второй шаг, который я должен сделать после $document->setFooCode()
, чтобы сохранить новое значение fooCode?