Aktywne Wpisy
![](https://wykop.pl/cdn/c3397992/Panas_26Tqsph56Y,q60.jpg)
Panas +129
Taka ciekawostka, wewnętrzny głos który słyszymy w głowie posiada tylko 30-50% ludzi. Nie piszę o żadnej chorobie psychicznej, a o narratorze np. wstaję rano "burwa ale mi się nie chce". Słyszę ten głos teraz gdy robię ten wpis i pewnie ty go czytając.
50-70% ludzi to NPC
50-70% ludzi to NPC
![](https://wykop.pl/cdn/c3397992/rozowyslonikx_Fchq4JFaMc,q60.jpg)
rozowyslonikx +10
![](https://wykop.pl/cdn/c3201142/f5bd7c8783c04387706fdaa31ef971aef89be5e49884612f32ff3b2c2dc40fde,w150.jpg?author=rozowyslonikx&auth=911a3d5066b9790889887ac42df59296)
Załóżmy, że mam encję Post, która reprezentuje post na blogu. W bazie mam już kilka rekordów, ale po jakimś czasie chciałbym dodać createdAt i updatedAt za pomocą StofDoctrineExtensionsBundle i Timestampable.
Dodaję traita do encji i robię migrację. No i przy migrowaniu zmian mam błąd:
Problem jest z tym, że istnieją rekordy w tabeli. Teraz mogę bez problemu dropnąć bazę i puścić migracje + fixtures ponownie, ale co w przypadku produkcji? Da się ustawić jakaś defaultową wartość dla istniejących już rekordów?
#php #symfony #naukaprogramowania
options={"default" = "CURRENT_TIMESTAMP"}
lub w samej migracji zmień default naCURRENT_TIMESTAMP
@Klopsztanga: Myślałem o tym, ale wtedy nie mógłbym wykorzystać gotowego traita. Więc trzeba samemu pododawać pola lub zrobić własnego traita z nullable=true.
@bananowy_szejk: te bundle'e to za duży narzut imho
new DateTime()
dla tych pól, czy settować gdzieś po drodze po stworzeniu obiektu. DoctrineExtensions ma listenery, które się załączają przy każdym wowołaniu skonfigurowanego z nimiEntityManager
... function __construct(...) {
$this->createdAt = new \DateTime();
}
$entity = new Post();
$entity->setCreatedAt(new \DateTime());