Potrzebuję zrobić tłumaczonego sluga. Domyślnie mam locale ustawione na pl.

  1. $menuColl[0] = new Menu();
  2. $menuColl[0]->setName('O nas');
  3. $menuColl[0]->setLabel('O nas');
  4. $manager->persist($menuColl[0]);
  5. $manager->flush();
  6.  
  7. $menuColl[0]->setTranslatableLocale('en');
  8. $menuColl[0]->setName('About us');
  9. $menuColl[0]->setLabel('About us');
  10. $manager->flush();


Według dokumentacji na stronie https://github.com/l3pp4rd/DoctrineExtensio...oc/sluggable.md należy ustawić listener sluggable przed listenerem translatable.

w services.yml mam:
  1. gedmo.listener.sluggable:
  2. class: Gedmo\Sluggable\SluggableListener
  3. tags:
  4. - { name: doctrine.event_subscriber, connection: default }
  5. calls:
  6. - [ setAnnotationReader, [ @annotation_reader ] ]
  7.  
  8. gedmo.listener.translatable:
  9. class: Lib\Service\TranslatableListenerService
  10. tags:
  11. - { name: doctrine.event_subscriber, connection: default }
  12. calls:
  13. - [ setAnnotationReader, [ @annotation_reader ] ]
  14. - [ setTranslatableLocale, [ @request_injector ] ]
  15. - [ setTranslationFallback, [ true ] ]


Może ktoś mi pomóc? Co jest nie tak? Dokumentacja mówi:
  1. $evm = new \Doctrine\Common\EventManager();
  2. $sluggableListener = new \Gedmo\Sluggable\SluggableListener();
  3. $evm->addEventSubscriber($sluggableListener);
  4. $translatableListener = new \Gedmo\Translatable\TranslationListener();
  5. $translatableListener->setTranslatableLocale('en_us');
  6. $evm->addEventSubscriber($translatableListener);


Co robię nie tak?questionmark.gif Czy moje services.yml nie odzwierciedla dokładnie powyższego kodu??

Jest ktoś w stanie pomóc?

Ehhh udało mi się dojść do sprawy... należało dać serwis gedmo.listener.translatable całkowicie na końcu (po wszystkich innych subscriberach), a nie tylko po sluggable.
Przykład:
  1. gedmo.listener.sluggable:
  2. class: Gedmo\Sluggable\SluggableListener
  3. tags:
  4. - { name: doctrine.event_subscriber, connection: default }
  5. calls:
  6. - [ setAnnotationReader, [ @annotation_reader ] ]
  7.  
  8. gedmo.listener.sortable:
  9. class: Gedmo\Sortable\SortableListener
  10. tags:
  11. - { name: doctrine.event_subscriber, connection: default }
  12. calls:
  13. - [ setAnnotationReader, [ @annotation_reader ] ]
  14.  
  15. gedmo.listener.loggable:
  16. class: Gedmo\Loggable\LoggableListener
  17. tags:
  18. - { name: doctrine.event_subscriber, connection: default }
  19. calls:
  20. - [ setAnnotationReader, [ @annotation_reader ] ]
  21.  
  22. gedmo.listener.translatable:
  23. class: Lib\EventListener\TranslatableServiceListener
  24. tags:
  25. - { name: doctrine.event_subscriber, connection: default }
  26. calls:
  27. - [ setAnnotationReader, [ @annotation_reader ] ]
  28. - [ setTranslatableLocale, [ @request_injector ] ]
  29. - [ setTranslationFallback, [ true ] ]
  30.