Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2][SF2]NonUniqueResult, 500 Internal Server Error
newbie96
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 31.12.2011

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


Witam, chciałbym wyświetlić nazwę użytkownika danego komentarza.Tym kawałkiem wyświetlam komentarze.
  1.  
  2. $repository = $this->getDoctrine()
  3. ->getRepository('AcmeMainBundle:Comments');
  4. $query = $repository->createQueryBuilder('c')
  5. ->where('c.post_id ='. $postId)
  6. ->getQuery();
  7.  
  8. $comment = $query->getResult();
  9.  
A tym próbuję pobrać nazwę użytkownika.
  1.  
  2. $id = $query->getSingleResult()->getUser_id();
  3.  
  4. $UserComment = $this->getDoctrine()
  5. ->getRepository('AcmeMainBundle:Comments')
  6. ->find($id);
  7.  
  8. $username = $UserComment->getUsers()->getName();
Lecz symfony wyrzuca 500 Internal Server Error - NonUniqueResultException. Jak mogę inaczej pobrać id? lub co muszę zmienić żeby nie było błędu?
Dodam że jeśli stworzę stalą id, to wyświetli się nazwa.

Będę wdzięczny za każdą pomoc.
Pozdrawiam

Ten post edytował newbie96 30.08.2013, 16:03:42
Go to the top of the page
+Quote Post
cadavre
post
Post #2





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

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


Po to jest repozytorium w Doctrine żeby z niego korzystać.
  1. $comment = $this->getDoctrine()->getRepository('AcmeMainBundle:Comments')->find($postId);


Pokaż encję Comments to dopiszę resztę. : )


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
newbie96
post
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 31.12.2011

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


Kod
/**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;


    /**
     * @ORM\Column(type="string", length=255)
     */

    protected $user_id;



    /**
     * @ORM\Column(type="string")
     */


    protected $content;


    /**
     * @ORM\Column(type="string", length=255)
     */

    protected $date;



    /**
     * @ORM\Column(type="string", length=255)
     *
     */

    protected $post_id;

    /**
     * @ORM\ManyToOne(targetEntity="Users", inversedBy="comments")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */

    protected $users;


Ten post edytował newbie96 30.08.2013, 16:26:01
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Pytanie... Po co są relacje, skoro z nich nie korzystasz? Skoro masz już komentarze, to dla każdego wywołanie getUsers (a zapewne taka metoda jest w klasie Comments), zwrócić Ci powinna encję Usera. Z niej sobie możesz co chcesz wyciągnąć o użytkowniku.

Co do błędu to jak wół pisze w dokumentacji Symfony2 przy Doctrine:
Cytat
The getSingleResult() method throws a Doctrine\ORM\NoResultException exception if no results are returned and a Doctrine\ORM\NonUniqueResultException if more than one result is returned.
Chyba już wiesz gdzie szukać błędu smile.gif

Poza tym logika nieco mnie przytłacza... Używasz USER_ID by przypisać je do comment id i potem chcesz z jego pomocą wyciągać username... Coś chyba jest tu nie tak...


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
cadavre
post
Post #5





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

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


Proponuję pierwsze popisać parę prostych rzeczy w samym PHP z PDO. Dobrze wiedzieć jak coś działa w tle i dlaczego pewne rzeczy się dzieją. Piszę to bo widać po Twoim kodzie, że dopiero zaczynasz z tym językiem/frameworkiem.


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 18:19