PostPersist在Doctrine Slim v3中

时间:2016-10-06 13:25:48

标签: doctrine-orm

我在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;
}

但是当我坚持实体时,我的领域仍然是空的

1 个答案:

答案 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;
}

希望这个帮助