В моей сущности есть поле, где я храню дату.
Я хочу, чтобы при внесении изменений в другой объект поле обновлялось с указанием даты изменения.
Сущность, где у меня есть поле:
class Offers{
...
/**
* @var \DateTime
*/
private $last_update;
...
}
Сущность, выполняющая действие, обновляющее поле:
class OffersUser
{
...
/**
* @var \MyAppBundle\AppBundle\Entity\Offers
*/
private $offers;
public function setOffers(\MyAppBundle\AppBundle\Entity\Offers $offers = null){
$this->offers = $offers;
return $this;
}
...
}
Можно ли сделать так, чтобы при внесении изменений в offeruser мое поле last_update сущности обновлялось?
Я мог бы использовать метод updated при генерации Symfony?
Вы можете использовать обратные вызовы жизненного цикла доктрины для достижения этой цели.
В файле конфигурации вашей сущности определите lifecycleCallbacks
раздел или использовать аннотацию @PreUpdate
если вы не используете yaml.
Например Ресурсы / config / doctrine / Entity.orm.yml
lifecycleCallbacks:
prePersist: [ prePersist ]
preUpdate: [ preUpdate ]
Entity / Entity.php
public function preUpdate()
{
...
$this->setChanged(new \DateTime());
...
}
Других решений пока нет …