Symfony 4 - 如何 .on( "select" ) 并升级实体中的计数器?



在我的实体中,我有一个视图计数器每次教义调用实体时,它都开始 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();
    }

真的有用!

相关内容

  • 没有找到相关文章

最新更新