Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2][Doctrine2]Natywny sql problem z zapytaniem zwraca null
silverwind
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 8.02.2013

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


Dlaczego mi zwraca null przy natywny sql w zapytaniu. Dump w szablonie są same null.

  1. public function getExpensesByProperty()
  2. {
  3.  
  4. $rsm = new ResultSetMapping;
  5.  
  6. $rsm->addEntityResult('User\UserBundle\Entity\User', 'u');
  7.  
  8. $rsm->addFieldResult('u', 'username', 'username');
  9.  
  10. $sql = "
  11. SELECT username
  12. FROM users
  13.  
  14. ";
  15.  
  16.  
  17.  
  18.  
  19. $query= $this->_em->createNativeQuery(
  20. $sql, $rsm
  21. );
  22.  
  23.  
  24.  
  25. return $query->getResult();
  26.  
  27. }
  28. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Pozwoliłem sobie poprawić:
  1. public function findExpensesByProperty()
  2. {
  3.  
  4. $rsm = new ResultSetMapping;
  5.  
  6. $rsm->addEntityResult('User\UserBundle\Entity\User', 'u');
  7. $rsm->addJoinedEntityResult('Property\ManagementBundle\Entity\Owner', 'o', 'u', 'owners');
  8. $rsm->addJoinedEntityResult('Property\ManagementBundle\Entity\Property' , 'p', 'o', 'property');
  9. $rsm->addJoinedEntityResult('Property\ManagementBundle\Entity\Expenses' , 'e', 'p', 'expenses');\
  10. $rsm->addScalarResult('SUMA', 'sum'); // W tablicy będzie pod kluczem z 2 argumentu, czyli sum
  11. $sql = "
  12. SELECT u.id,u.username,
  13. o.id as o_id,o.name as o_name,
  14. p.id as p_id,p.name as p_name,p.adress as p_adress,
  15. e.id as e_id,e.name as e_name,SUM(e.price) as SUMA
  16. FROM users u
  17. INNER JOIN owner o ON u.id = o.user_id
  18. INNER JOIN property p ON o.id=p.owner_id
  19. LEFT JOIN expenses e ON p.id=e.property_id
  20. GROUP BY p_id
  21. ";
  22.  
  23.  
  24.  
  25.  
  26. $query= $this->_em->createNativeQuery(
  27. $sql, $rsm
  28. );
  29.  
  30. // $query->setParameter(1,$User);
  31.  
  32. return $query->getArrayResult();
  33.  
  34. }
  35. }


1. Do metod, które służą do otrzymywania obiektów a które mogą zwrócić null używaj find, get zakłada, że otrzymasz obiekt i tyle, nie dopuszcza nulla (niepisana zasada).
2. Czemu korzystając z ORM rzeźbisz wszystko ręcznie?
3. Polecam lekturę: http://doctrine-orm.readthedocs.org/projec...native-sql.html

Ten post edytował lukaskolista 31.01.2016, 16:10:28
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: 6.10.2025 - 12:41