![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Wygenerowałem sobie Cruda. I teraz chcę zrobić jedną rzecz. Mam o to poniższy screen dodawania elementu. I problem w tym taki, że chcę wyrzuć stąd te nieszczęsne pole daty. Zatem w
usunąłem ->add('createdAt'). I jest wszystko okej, bo znikło z formularza. Ale gdy zapisuje to dostaje mi tam do bazy null i wyskakuje błąd. No bo null nie może być. Próbowałem zatem w jakiejś metodzie z Entity np setDescription wrzucić $this->setCreated aby mi tam dodało datę, tam dałem date("Y-m-d",time()). No ale błędy, bo wiecznie format coś tam... ;/ Pytanie: 1. Czy muszę całość zapisania zrobić od nowa w EntityRepository nadpisując tą wygenerowaną metodę? 2. Czy można jakoś to krócej zrobic? ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Próbowałem zatem w jakiejś metodzie z Entity np setDescription wrzucić $this->setCreated aby mi tam dodało datę, tam dałem date("Y-m-d",time()). No ale błędy, bo wiecznie format coś tam... ;/ Dobrze kombinujesz. Tylko ten kod wrzuć do konstruktora, a nie do setDescription() -------------------- :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 395 Pomógł: 80 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
"created" prawdopodobnie musi być jako obiekt klasy DateTime czyli tak jak wyżej podano do konstruktora dodajesz:
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W SF2 służą do tego lifcycleCallbacks (w tym przypadku prePersist)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
Kurcze próbuję tego i tego i LIPA. Faktycznie nie pomyślałem o konstruktorze. Ale Wy to wrzucacie w EntityRepository czy do Entity?
A co to za tworzenie obiektu new \DateTime()? Z backsleshem, tak to trzeba zrobić? W sumie pierwszy raz z takim czymś się spotykam, to od razu pytam. Dzięki za pomoc tak w ogóle ![]() A jeszcze jedno, czy muszę na nowo wygenerować Entity i bazę z tym : @ORM\HasLifecycleCallbacks() czy mogę dopisać? Ten post edytował basso 5.01.2013, 11:22:24 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Metody dla lifecycleCallbacks definiujemy w klasie encji, nie w repozytorium. Pokaż kod encji.
PS: Klasa DateTime zdefiniowana jest w domyślnej/standardowej przestrzeni nazw stąd \. Ten post edytował mortus 5.01.2013, 11:20:26 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Całe Entity wygląda tak
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przed deklaracją klasy brakuje adnotacji @ORM\HasLifecycleCallbacks a w kodzie klasy dodaj metodę setCreatedAtValue, którą wcześniej napisałem (nie zapomnij o adnotacji @ORM\PrePersist).
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 1 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
NO no ja CI dałem moja oryginalną bez zmian Entity.
Spoko wkleiłem to na górze, ale w metodzie ucinałem Value i zostawialem tylko jedną setCreatedAt ![]() Zadziałało, bardzo dziękuje Ci i Wam za pomoc. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 05:27 |