Документация Doctrine2 по preUpdate
событию говорит
Это событие имеет мощную функцию, однако оно выполняется с экземпляром PreUpdateEventArgs
, который содержит ссылку навычисленный набор изменений этого объекта.Это означает, что у вас есть доступ ко всем полям, которые изменились для этой сущности с их старым и новым значением.
Звучит полезно!Итак, что я делаю:
/**
* Acme\TestBundle\Entity\Article
*
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class Article
{
// ...
/**
* @ORM\PreUpdate
*/
public function preUpdate(\Doctrine\ORM\Event\PreUpdateEventArgs $eventArgs)
{
if ( /* use $eventArgs here */ )
$this->updatedAt = new \DateTime();
}
// ...
}
Но не повезло - аргументы не передаются:
Catchable Fatal Error: Аргумент 1, переданный
Acme\TestBundle\Entity\Article::preUpdate()
, должен быть экземпляром
Doctrine\ORM\Event\PreUpdateEventArgs
, нет данных , вызывается в
...\vendor\doctrine\lib\Doctrine\ORM\Mapping\ClassMetadataInfo.php
в строке 1540 и определяется в ...\src\Acme\TestBundle\Entity\Article.php
строке 163
Я думаю, это должно работатькаким-то другим способом в Symfony2.Как мне это сделать?