Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před rokem

maarlin
dibi guru
Registrovaný: 20. 8. 2009
Příspěvky: 204

PHP count() v šabloně nad DibiFluent

Mám takový postřeh, faktické chování dibi, které mě popravdě trochu zmátlo a nečekal jsem ho…

V modelu/presenteru mám dotaz seskládaný skrz DibiFluent, tedy do šablony se asi předává DibiFluent objekt.
Pokud zavolám standardní count() PHP funkci nad tímto objektem, tak se v podstatě zavolá DibiFluent::count() metoda, což znamená, že se zabalí celý stávající dotaz se vším všudy a nad ním se spočte SQL COUNT(*).

Popravdě v trochu větších aplikacích si moc nedovedu představit reálně využití té metody jako takové…

Při počítání výsledků totiž:

  1. většinou nepotřebuji všechny sloupce, ale obvykle jen to číslo výsledků
  2. Pokud to nemá vliv na počet vrácených výsledků, obvykle nepotřebuji ani připojené další tabulky
  3. nepotřebuji snad nikdy řadit
  4. nepotřebuji, resp. spíš nechci omezovat výsledky skrz OFFSET a LIMIT

Tzn. stejně je většinou potřeba COUNT() dotaz napsat zvlášť, eventuálně udělat nad hotovou metodou modelu něco jako toto:

$this->getArticles()->select(FALSE)->select('COUNT(*)')->orderBy(FALSE);

Editoval maarlin (19. 4. 2011 17:00)

 

Zápatí