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:
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:
$books = BookQuery::create() ->select('Title') ->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:
$c = new Criteria(); $c->clearSelectColumns(); $c->addSelectColumn(self::SURNAME); $c->setDistinct(); $result = self::doSelectStmt($c); foreach($result as $surname) { $tablica[] = $surname[0]; } //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.