-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Description
I have a doctrine.event_listener configured in my services.yml:
ams.cage_listener:
class: AMS\ColonyBundle\EventListener\CageListener
tags:
- { name: doctrine.event_listener, event: onFlush }
In that event listener, I am looking for Cage entities and conditionally updating a 'number' property. The Cage::number entity property also happens to be the field used for a StofDoctrineExtentions Gedmo/Sluggable property ($slug is in the same entity class):
/**
* @var string $slug
*
* @Gedmo\Slug(fields={"number"}, updatable=true)
* @ORM\Column(name="slug", type="string", length=20, unique=true)
*/
private $slug;
This means I need the slug to be regenerated. if my onFlush listener method changes the Cage::number property.
Unfortunately, Sluggable also listens for the onFlush event and executes before my own listener method. I tried adding a priority tag to my service definition to make it execute first:
ams.cage_listener:
class: AMS\ColonyBundle\EventListener\CageListener
tags:
- { name: doctrine.event_listener, event: onFlush, priority: 100000 }
But this has no effect (Gedmo's onFlush listener still executes first). Is this a bug? Or is there any way I can make my own listener method execute before Gedmo's?