Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Doctrine] Konwersja SQL query do Doctrine
flip02
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

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


  1. SELECT DISTINCT car.type_id, car_type.name FROM car LEFT JOIN car_type ON car_type.id = car.type_id
  2. ORDER BY car_type.name ASC


powyższe zwraca prawidłowy wynik, jeśli przekształce to na poniżesze doklejają mi się dodatkowa kolumna car_type.id, który rozwala cały wynik i której mi nie potrzeba:

  1.  
  2. $qu = Doctrine_Query::create()
  3. ->select('DISTINCT c.type_id, t.name')
  4. ->from('car c')
  5. ->leftJoin('c.CarType t ON t.id = c.type_id')
  6. ->orderBy('t.name ASC');
  7.  
  8. $this->productTypes = $qu->fetchOne();


W dodatku DISTINCT nie ma żadnego efektu. Co robię źle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
wdev
post
Post #2





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

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


Spróbuj zmienić sposób hydracji, np. zrobić ->execute(null, Doctrine_Core::HYDRATE_ARRAY). Problem Doctrine polega na tym, że stara się ona uzyskać id, żeby stworzyć poprawny obiekt. Jeśli nie, to zostaje jeszcze RawSql() (IMG:style_emoticons/default/wink.gif)

  1.  
  2. $qu = new Doctrine_RawSql();
  3.  
  4. $qu->select('{c.type_id}, {t.name}')
  5. ->from('car c')
  6. ->leftJoin('c.CarType t ON t.id = c.type_id')
  7. ->orderBy('t.name ASC')
  8. ->distinct();
  9.  
  10. $this->productTypes = $qu->fetchOne();


Powinno zadziałać (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
flip02
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.08.2011

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


już prawie jest dobrze. Dostaję:
  1. The root class of the query (alias c) must have at least one field selected.


Query jakie zostało wygenerowane przez sf jest w porządku, po wykonaniu go na bazie zwraca co ma zwracać.

Ten post edytował flip02 14.08.2011, 04:11:37
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: 3.10.2025 - 02:40