mimol
23.06.2013, 21:58:23
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?
mimol
23.06.2013, 22:28:27
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
23.06.2013, 22:56:38
public function postPersist(LifecycleEventArgs $args) {
$user = $args->getEntity();
/**
* Sprawdzasz czy jest to instancja twojej encji
* ponieważ to się wykona przy każdym insercie dla każdej encji
*/
if($user instanceof User) {
$em = $args->getEntityManager();
}
}
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
23.06.2013, 23:09:15
@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()?