当集合字段更改(添加或删除)时,不会触发生命周期回调



我正在使用Symfony3.4,当我更新Vente Entity的实例时,我有两种情况:

  • 如果我至少更新一个简单的字段,如(日期,整数,字符串等...(=>则触发回调">预更新回调">

  • 当我通过添加/删除/更新行 => 仅更新集合$elementsVente时,不会触发回调">预更新回调">

那么,这是怎么回事,是否有解决此问题的解决方案。

谢谢。

文特实体

/**
* Vente
*
* @ORMTable(name="vente")
* @ORMEntity(repositoryClass="AppBundleRepositoryVenteRepository")
* @ORMHasLifecycleCallbacks()
*/
class Vente
{
/**
* @var int
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var DateTime
*
* @ORMColumn(name="date", type="datetime")
*/
private $date;
/**
* @var DoctrineCommonCollectionsCollection
* @Assert2ElementVente()
*
* @ORMOneToMany(targetEntity="ElementVente", mappedBy="vente", cascade={"persist", "remove"}, orphanRemoval=TRUE)
*/
private $elementsVente;
//...
/*
* @ORMPreUpdate
*/
public function preUpdateCallback()
{
die('fired');
}
}

PreUpdate生命周期事件由DoctrineUnitOfWork组件触发。从代码中可以看出 - 它是在负责更新单个实体executeUpdates方法中触发的。因此,此事件旨在用于实体本身,与集合更改无关。

最新更新