gpt4 book ai didi

symfony - 禁用 Doctrine Timestampable 在某些更新时自动更新 `updatedAt` 字段

转载 作者:行者123 更新时间:2023-12-02 02:04:38 32 4
gpt4 key购买 nike

在 Symfony2 项目中,我有一个 Doctrine 实体,它有一个名为 lastAccesseddatetime 字段。此外,该实体使用 TimestampableupdatedAt 字段上。

namespace AppBundle\Entity;

use
Doctrine\ORM\Mapping as ORM,
Gedmo\Mapping\Annotation as Gedmo
;

class MyEntity {

/**
* @ORM\Column(type="datetime")
*/
private $lastAccessed;

/**
* @ORM\Column(type="datetime")
* @Gedmo\Timestampable(on="update")
*/
private $updatedAt;

}

我需要更新字段lastAccessed,而不更新updatedAt 字段。我怎样才能做到这一点?

最佳答案

我也偶然发现了这个问题并想出了这个解决方案:

public function disableTimestampable()
{
$eventManager = $this->getEntityManager()->getEventManager();
foreach ($eventManager->getListeners('onFlush') as $listener) {
if ($listener instanceof \Gedmo\Timestampable\TimestampableListener) {
$eventManager->removeEventSubscriber($listener);
break;
}
}
}

当然也可以使用非常相似的东西来禁用可指责的行为。

关于symfony - 禁用 Doctrine Timestampable 在某些更新时自动更新 `updatedAt` 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533795/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com