Doctrine2条件缓慢

时间:2014-06-04 15:06:49

标签: symfony doctrine

我想使用可缓慢的bahaviour,但在某些条件下。我这样配置:

/**
 * @Gedmo\Slug(fields={"title"}, updatable=false)
 * @ORM\Column(length=255, unique=true)
 */
protected $slug;

默认情况下,我希望在所有持久性上生成一个slug,而我希望只有在特定条件有效时才更新slug。

在我的实体监听器中,我做了

public function preUpdate($product_culture, PreUpdateEventArgs $event)
{

    if ($event->hasChangedField('title')) {
        $this->getProductCultureService()->setProductCulture($product_culture);

        if ($this->getProductCultureService()->isSluggable()) {
            $product_culture->setSlug(null);
        }
    }
}

slug在persist上正确生成,条件还可以,但是当我将slug设置为null以便可以重新生成时,我最终会在数据库中使用null

doc说必须将slug设置为null才能重新生成它。

你知道我错过了吗?

由于

1 个答案:

答案 0 :(得分:0)

我设法找到了解决问题的方法。 我不知道为什么但是可缓慢的监听器几乎所有功能都处于私有模式。这非常令人沮丧,因为无法扩展它。 所以我复制了它并将我的逻辑添加到onFlush方法。

现在工作正常。