在我的实体中,我有一个视图计数器每次教义调用实体时,它都开始 0 和 ++
/**
* @var int
*
* @ORMColumn(name="compteur", type="integer", nullable=true)
*/
private $compteur;
我可以使用此功能
public function UpCompteur()
{
$this->compteur = $this->compteur + 1;
}
每次我"选择"带有教义的实体时如何自动使用此功能?
我知道每次执行请求时都可以在存储库中添加此功能,但没有更好的可能性?
谢谢
我可能会使用生命周期回调。
在您的情况下,您需要在事件postLoad
调用函数。
在实体 从数据库加载到当前实体管理器中或在 已对其应用刷新操作。
它应如下所示:
use DoctrineORMMapping AS ORM;
/**
* @ORMEntity()
* @ORMHasLifecycleCallbacks()
*/
class Entity {
// ...
/**
* @ORMPostLoad
*/
public function UpCompteur()
{
$this->compteur = $this->compteur + 1;
}
}
感谢Drkey,这是最终的解决方案
use DoctrineCommonPersistenceEventLifecycleEventArgs;
use DoctrineORMMapping AS ORM;
/**
* @ORMEntity()
* @ORMHasLifecycleCallbacks()
*/
class Entity {
// ...
/**
* @ORMPostLoad
*/
public function UpCompteur(LifecycleEventArgs $args)
{
$em = $args->getEntityManager();
$this->compteur = $this->compteur + 1;
$em->persist($this);
$em->flush();
}
真的有用!