Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] propel problem z pobraniem pojedynczego pola z tabeli
Forum PHP.pl > Forum > PHP > Frameworki
harvesterix
Witam
Chciałbym się dowiedzieć w jaki sposób używając propela mogę sobie pobrać z bazy dowolne pojedyncze pole?

Przykład
Mam tabelę user i chciałbym z niej wyciągnąć wszystkie nazwiska uzytkowników bez powtórzeń czyli proste zapytanie mysql:
  1. SELECT DISTINCT surname FROM user;

Oczywiście wiem że mogę sobie pobrać wszystkich użytkowników (całe obiekty) i później w pętli przetworzyć ich nazwiska ale nie o to mi chodzi, po co pobierać wszystko i jeszcze przetważać pobrane dane pętlą skoro bazy danych załatwiają takie żeczy od ręki.
W dokumentacji propela znalazłem bardzo prosty sposób na zrobienie czegoś podobnego w taki sposób:
  1. $books = BookQuery::create()
  2. ->select('Title')
  3. ->find();


Tylko że gdy próbuję zrobić analogicznie w symfony wywala mi błąd że nie ma klasy UserQuery


OK udało mi się zrobić to w taki sposób:
  1. $c = new Criteria();
  2. $c->clearSelectColumns();
  3. $c->addSelectColumn(self::SURNAME);
  4. $c->setDistinct();
  5. $result = self::doSelectStmt($c);
  6. $tablica = array();
  7. foreach($result as $surname)
  8. {
  9. $tablica[] = $surname[0];
  10. }
  11.  
  12. //później wystarczy zrobić foreach($tablica as $row) echo $row


Mimo wszystko chciałbym poznać inne sposoby radzenia sobie z takimi problemami, także jeśli znacie inną metodę to piszcie.
chemik1982
Propel, Doctrine - OK, ale kiedy trzeba użyć użyć klasycznego zapytania to nie ma co kombinować.
http://www.symfony-project.org/gentle-intr...raw_sql_queries
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.