我有两个实体。这样的模式:
/*
* @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无效。
我该怎么做才能使这项工作正常进行?
答案 0 :(得分:0)
这是一个众所周知的问题。它意味着限制Gedmo Bundle(Atlantic18 / DoctrineExtensions)。我必须手动设置所有值(Blameable,Timestampable,Sortable等..)。