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? (IMG:http://s.z.w.interia.pl/forumphp/crud.jpg) |
|
|
|
![]() |
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%)
|
|
|
|
|
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 (IMG:style_emoticons/default/smile.gif) 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 (IMG:style_emoticons/default/smile.gif) Zadziałało, bardzo dziękuje Ci i Wam za pomoc. |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 05:01 |