合并实体后,Gedmo Timestampable和Blameable不起作用

时间:2015-08-29 20:52:06

标签: symfony doctrine-orm

我有两个实体。这样的模式:

 /*
 * @ORM\MappedSuperClass
 * @JMS\ExclusionPolicy("all")
 */

abstract class BaseEntity {

/**
 * @var string $createdBy
 *
 * @Gedmo\Blameable(on="create")
 * @ORM\Column(name="created_by", type="string", nullable=true)
 */
protected $createdBy;

/**
 * @var \DateTime $created
 *
 * @Gedmo\Timestampable(on="create")
 * @ORM\Column(name="created_at", type="datetime", nullable=true)
 */
protected $createdAt;

像这样的其他实体:

 /**
  * Survey
  *
  * @ORM\Table(name="answers")
       *@ORM\Entity(repositoryClass="Acme\SomeBundle\Repository\Answer\AnswerRepository")
  */
 class Answer extends BaseEntity {

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

问题是:

    $data = $em->merge($datas);
    $em->persist($data);
    $em->flush();

在此过程 Gedmo Blameable之后,Timestampable无效。

我该怎么做才能使这项工作正常进行?

1 个答案:

答案 0 :(得分:0)

这是一个众所周知的问题。它意味着限制Gedmo Bundle(Atlantic18 / DoctrineExtensions)。我必须手动设置所有值(Blameable,Timestampable,Sortable等..)。