Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2][SF2]Pobieranie ilości rekorów
gentleman
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 17.05.2013

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


Witam, chciałbym pobierać ilość komentarzy w danym temacie.Czytając forum dowiedziałem się że najepszym sposobem jest trzymanie tej liczby w bazie. Problem pojawił się podczas zwiększania liczby o 1. Jak zwiększyć wartość o 1?

oto kod który nic nie robi (IMG:style_emoticons/default/biggrin.gif)
Kod
          $em = $this->getDoctrine()->getEntityManager();
              $thread = $em->getRepository('AcmeMainBundle:Thread')->findOneById($id);
              $thread->setCount(1++);
              $em->persist($thread);
              $em->flush();
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Co niby ma robić ta linijka: $thread->setCount(1++); ? Zero związku z Symfony2 a nawet o Doctrine ciężko tu mówić.
Do czego potrzebujesz tej linijki: $em->persist($thread); ?
Go to the top of the page
+Quote Post
cadavre
post
Post #3





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Jeśli już to chyba bardziej coś pokroju:
  1. $em = $this->getDoctrine()->getEntityManager();
  2. $thread = $em->getRepository('AcmeMainBundle:Thread')->findOneById($id);
  3. $thread->setCount($thread->getCount()+1);
  4. $em->flush();

Czy po prostu w encji dodać metodę:
  1. function increaseCount()
  2. {
  3. $this->count++;
  4. }

Ale prawdę mówiąc - w zależności od obciążenia, z Doctrine 2.1 i średniej wielkości bazą lepiej skorzystać z Extra lazy loadingu.
Ref: http://docs.doctrine-project.org/projects/...sociations.html

BTW Tak jak destroyerr wspomniał - persist() używa się tylko podczas tworzenia obiektu i informowania EM o tym, że jest to obiekt zarządzany. Podczas pobierania z bazy, potem edycji i flushowania - persista nie stosujemy. (IMG:style_emoticons/default/smile.gif)

Ten post edytował cadavre 20.08.2013, 19:03:46
Go to the top of the page
+Quote Post

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: 9.10.2025 - 03:25