![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 17.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym Was prosić o pomoc. Jestem mało doświadczony w sf2, ostatnio natrafiłem na pewien problem.Pobierając komentarze nie jestem w stanie wyświetlić ich autora. Wiem że korzystając z findOneBy() pobieram tylko 1 rekord, który wyświetla się w pozostałych.
Jeśli wiecie jaki jest problem prosiłbym o wskazówkę dla korekty lub o nowe rozwiązanie. Ten post edytował gentleman 29.11.2013, 20:57:58 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
A pokaż encje i te relacje. Składowa getUsers() zapewne zwraca kolekcję.
Ten post edytował pedro84 29.11.2013, 21:53:54 -------------------- Google knows the answer...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 17.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
czy jest możliwość obejścia relacji 1:n i zrobić coś typu: Kod $repository = $this->getDoctrine() ->getRepository('AcmeMainBundle:Comment'); $query = $repository->createQueryBuilder('c') ->where('c.post_id ='. $topicId) ->getQuery(); $comment_user = $query->getSingleResult()->getUserId(); Kod $repository = $this->getDoctrine() ->getRepository('AcmeMainBundle:Users'); $query = $repository->createQueryBuilder('u') ->where('u.id ='. $comment_user) ->getQuery(); $name = $query->getSingleResult()->getUsername(); W obu przypadkach wszystko jest ok gdy komentarz jest tylko 1, jeśli dochodzą kolejne jest coś nie tak. Ten post edytował gentleman 29.11.2013, 22:10:09 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
W kwestii nazewnictwa, to masz na odwrót - w encji User komentarze powinny mieć nazwę w liczbie mnogiej ($comments, nie $comment - sam ją nawet deklarujesz jako kolekcję), zaś w encji Comment $user, a nie $users, bo to pojedynczy obiekt.
Sam zapis masz ok, tylko po tych poprawkach powinien wyglądać:
Działać musi. -------------------- Google knows the answer...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 17.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem, nie sądzisz że powinienem zmienić metodę, ponieważ findOneBy() wyszukuje pojedynczy wynik. Co mógłbym wstawić za to?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale Ty chcesz pobrać jeden komentarz czy wszystkie?
-------------------- Google knows the answer...
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 17.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym wszystkie. Mam pobrane wszystkie komentarze, chciałbym zamienić id_usera na nazwę użytkownika. Przepraszam jeżeli się źle w 1 poście wyraziłem.
Ten post edytował gentleman 29.11.2013, 22:29:12 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Uwaga: musisz tylko zdefiniować relację pomiędzy obiektami Post <=> Comment, bo tego nie masz, a winieneś. Ten post edytował pedro84 29.11.2013, 22:37:26 -------------------- Google knows the answer...
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 17.05.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za pomoc.
jednak coś nie działa. Zwraca mi taki błąd: Notice: Undefined index: posts in /workspace/praca/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1575 ale czy to nie jest to samo co tamto??
zwraca że $tar jest niezdefiniowany Ten post edytował gentleman 30.11.2013, 19:44:18 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chłopie, zobacz co Ty robisz. Zobacz co zawiera ta zmienna:
Kod $ta = $comments->getUser(); . findOneBy() zwraca jeden określony obiekt, w tym przypadku komentarz. Teraz, za pomocą metody getUser() uzyskujesz dostęp do obiektu User zdefinowanego w relacji. To zawiera zmienna $ta. Teraz chcesz po niej przejechać pętlą. Widzisz już błąd?Pomijam już to, że stosujesz całkowicie mylącą konwencję nazewnictwa zmiennych, relacji. -------------------- Google knows the answer...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:57 |