我在Slim V3中使用doctrine,我想拥有PostPersist / PostUpdate函数
这是我的实体
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
*
* @ORM\Table(name="xxxx", indexes={@ORM\Index(name="xxxx", columns={"xxxx"})})
* @ORM\Entity
* @ORM\HasLifecycleCallbacks()
*/
class MyEntity
{
....
/**
* Set lastUpdate
*
* @param \DateTime $lastUpdate
*
*
* @ORM\PostPersist()
* @ORM\PostUpdate()
*/
public function setLastUpdate($lastUpdate)
{
$this->last_update = new \DateTime('now');
return $this;
}
但是当我坚持实体时,我的领域仍然是空的
答案 0 :(得分:1)
如果要更改数据库值,则表示您正在侦听错误的事件。关于doc:
- postPersist - 在实体持久化后,实体发生postPersist事件。它将在数据库之后调用 插入操作。生成的主键值可在 postPersist event。
- postUpdate - postUpdate事件发生在对实体数据的数据库更新操作之后。它不会被调用DQL UPDATE 言。
更好地处理pre
事件而不是post
事件。例如:
/**
*
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function setLastUpdate()
{
$this->last_update = new \DateTime('now');
return $this;
}
希望这个帮助