Doctrine orm 后持久主义
我使用Slim V3的条令,我想拥有PostPersist/PostUpdate功能 这是我的实体Doctrine orm 后持久主义,doctrine-orm,Doctrine Orm,我使用Slim V3的条令,我想拥有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
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;
}
但是,当我持久化实体时,我的字段将保持为空如果要更改数据库值,则侦听的是错误的事件。关于:
- postPersist-实体持久化后,实体发生postPersist事件。它将在数据库关闭后被调用 插入操作。生成的主键值在中可用 后期事件
- postUpdate-对实体数据执行数据库更新操作后发生postUpdate事件。它不是为DQL更新而调用的 声明
pre
事件,而不是post
事件。例如:
/**
*
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function setLastUpdate()
{
$this->last_update = new \DateTime('now');
return $this;
}
希望这有帮助