Possiedo un gruppo di entità con un campo date_created e date_modified e sto tentando di impostare automaticamente questi campi su insert o update. date_created è impostato solo su insert, ma date_modified è impostato sia in insert che in update.Doctrine 2 evento preUpdate: non attivato all'inserimento?
Ho un metodo nella mia classe di entità con un'annotazione @PreUpdate, ma sembra essere richiamato solo quando un'entità viene aggiornata. Non viene chiamato quando viene inserita una nuova entità. La documentazione lo dice sull'evento preUpdate:
"L'evento preUpdate si verifica prima delle operazioni di aggiornamento del database sui dati di entità."
È corretto questo comportamento? In tal caso, qual è il modo migliore per avere un metodo chiamato prima di aggiornare o inserire? Attualmente se i codici del metodo sia con @PreUpdate e @PrePersist allora funziona, ma non sono sicuro se questo è ottimale:
/**
* @PreUpdate
* @PrePersist
*/
public function beforeSave()
{
if (!$this->getCreatedAt()) {
$this->setCreatedAt(new \DateTime());
}
$this->setModifiedAt(new \DateTime());
}
Grazie - Ho considerato la creazione di 2 metodi e farlo in questo modo, ma posso vivere con uno. Non ero sicuro che il preUpdate fosse legittimo solo per gli aggiornamenti, o sia per gli inserti che per gli aggiornamenti. –