Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2][Doctrine]Chyba problemik, ale dla mnie PROBLEM, Doctrine i mała procedura
Kazio44
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.09.2015

Ostrzeżenie: (0%)
-----


Sorry Panowie że zawracam głowę ale jestem za "mały" żeby temu dac radę tak jak chcę.
Załózmy, że mam tablicę KARTOTEKA o strukturze np.:

id, created, modified, numer, imię, nazwisko, .... (do 30 pól)

Muszę przygotowywać roczne archiwa tej tablicy (o nazwach [rok]_KARTOTEKA) przenosząc część
rekordów z tablicy podstawowej. Chcę to zrobić następująco:

1) sprawdzić czy tablica archiwum istnieje (np. 2015_KARTOTEKA)
2) jeśli nie istnieje to ja założyć
3) skopiować rekord z tablicy KARTOTEKA do tablicy archiwum (np. 2015_KARTOTEKA)
4) usunąć ten rekord z tablicy KARTOTEKA

Ale chciałbym to zrobić nie powielając Entity tablicy KARTOTEKA. Chciałbym użyć
tej samej klasy.

Pierwszy krok zrobiłem tak:

Kod
   $manager  = $this->getDoctrine()->getManager();
   $metadata = $manager->getClassMetadata(KARTOTEKA::class);
   $metadata->setPrimaryTable(array('name' => ‘2015_KARTOTEKA’));
   $schema = new SchemaTool($manager);
   $schema->createSchema(array($metadata));

i archiwum jest towrzony gdy takiej tablicy nie ma w bazie danych - fajnie.
Problem mam z krokami 3 i 4 bo nie potrafię znaleźć poprawnej drogi
rozwiązania tego zadania. Próbowałem tak:

Kod
   $data = $this->getRepo('KARTOTEKA')->findOneBy(1);
   $second = clone $data;
   $second->setId(null);
   $second->save();

oraz tak:

Kod
   $second = new Second();
   $second->fromArray($data->toArray());
   $second->save();

I ciągle nie wiem gdzie i jak znaleźć "uchwyt" do obiektu archiwum (np. 2015_KARTOTEKA).
I żebym nie był źle zrozumiany, jak zrobić to otwartym kodem SQLa (DQL) to ja wiem.
Ja chcę to zrobić jak najbardziej Doctri-nersko.

Proszę o pomoc i sugestie.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 04:21