Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF]Encja, pozycja
Forum PHP.pl > Forum > PHP > Frameworki
mimol
Witam
Posiadam encje Page (id, title, content). Do tej pory w menu pokazywały się one w kolejności po ID.
Postanowiłem dodać to encji page pole position.
Teraz pojawił się problem. Jak ustawić odpowiednią pozycję podczas tworzenie rekordu?

Mogę to spróbować za pomocą prePersist()
Tylko jak dostać się do entityManagera?
skowron-line
Użyj event listener -a
mimol
Mógłbyś coś bardziej opisać, bo w cookbooku jest troszkę ubogo
Uzywam sonataAdminBundle, wiec na razie mam tam prePersist() w ktorym ustawiam odpowiednia pozycje
skowron-line
  1. public function postPersist(LifecycleEventArgs $args) {
  2. $user = $args->getEntity();
  3. /**
  4.   * Sprawdzasz czy jest to instancja twojej encji
  5.   * ponieważ to się wykona przy każdym insercie dla każdej encji
  6.   */
  7. if($user instanceof User) {
  8. $em = $args->getEntityManager();
  9. }
  10. }

I rejestrujesz to w konfigu
Kod
services:
  nazwa.twojego.listenera:
    class: klasa
    tags:
      - {name: doctrine.event_listener, event: postPersist }

I to wszystko
http://docs.doctrine-project.org/en/2.0.x/...nce/events.html
mimol
@skowron-line
Ale Lifecycle jest domyślnie w Doctrine2, więc po co tworzyć na nowo?

Czyli ustawianie poprawnej pozycji powinno jednak wykonywać się w prePersist()?
skowron-line
Widze że nie załapałeś.

http://inchoo.net/tools-frameworks/symfony2-event-listeners/ tu masz przykład
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.