@@ -371,12 +371,6 @@ Next, refactor the ``Document`` class to take advantage of these callbacks::
371371 // do whatever you want to generate a unique name
372372 $filename = sha1(uniqid(mt_rand(), true));
373373 $this->path = $filename.'.'.$this->getFile()->guessExtension();
374- // Note: is you choose to use EvensubScribers, this change has no effect un database Update
375- // the 'initial' value set in {@link self::setFile()} is used instead. As this occurs
376- // inside EntityManager#flush() and changeSets are not tracked.
377- // use \Doctrine\Common\Persistence\Event\PreUpdateEventArgs $args as the handler fn param and
378- // $args->setNewValue('path', $filename);
379- // source: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate
380374 }
381375 }
382376
@@ -416,6 +410,16 @@ Next, refactor the ``Document`` class to take advantage of these callbacks::
416410 }
417411 }
418412
413+ ..caution ::
414+
415+ When using Doctrine EvensubScribers' preUpdate(\D octrine\C ommon\P ersistence\E vent\P reUpdateEventArgs $args)
416+ callback instead of lifecycle callbacks you also need to invoke, ``$args->setNewValue('path', $filename); ``
417+ as at this point changeSets are not updated and the ``path `` change just made won't have effect
418+ in the data base record.
419+ For full reference on preUpdate event restrictions, see `preUpdate `_ in the in the Doctrine Events documentation.
420+
421+ .. _`preUpdate` :http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#preupdate
422+
419423The class now does everything you need: it generates a unique filename before
420424persisting, moves the file after persisting, and removes the file if the
421425entity is ever deleted.