1

I have read through Gedmo Doctrine Extensions - Sluggable + Translatable Yaml Configuration and https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/sluggable.md#using-translationlistener-to-translate-our-slug

I am still not getting it to work. Translation works for all the other fields I have set but it doesn't work for the slug.

Have I missed something?

I have set the priority of sluggable listener to 1

/MyBundle/config/services.yml

    gedmo.listener.sluggable:
    class: Gedmo\Sluggable\SluggableListener
    tags:
        - { name: doctrine.event_subscriber, connection: default, priority: 1 }
    calls:
        - [ setAnnotationReader, [ @annotations.cached_reader] ]

/MyBundle/Entity/MyEntity.php

 /**
 * @Gedmo\Translatable
 * @Gedmo\Slug(fields={"title"})
 * @ORM\Column(length=64, unique=true, nullable=false)
 */
private $slug;


/**
 * @Gedmo\Locale
 * 
 */
protected $locale;

public function setTranslatableLocale($locale){
    $this->locale = $locale;
}

The default locale is 'de'.

/MyBundle/Controller/MyController.php

 /** @var EntityManager $em */
    $em = $this->getDoctrine()->getManager();

    $object = $em->getRepository('MyEntity')->find($id)

    $evm =  new EventManager();
    $sluggableListener = new SluggableListener();
    $evm->addEventSubscriber($sluggableListener);
    $translatableListener = new TranslatableListener();
    $translatableListener->setTranslatableLocale('en');
    $evm->addEventSubscriber($translatableListener);

    $object->setTranslatableLocale('en);
    $em->refresh($object);

    $em->persist($object);
    $em->flush;

    .....
Community
  • 1
  • 1
user742736
  • 2,629
  • 5
  • 30
  • 40

0 Answers0