Fetch, iterace, reset na prvni prvek atd
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- potapnik
- Člen | 127
Ahoj všem :-) trochu laboruji s ActiveRow v Nette\Database a potřeboval
bych poradit. Výsledek dotazu přiřazuji standardně do šablony z modelu
nějak takto:
$this->template->news = $this->newsModel->where()
přičemž v šabloně bych:
- potřeboval iterovat nad výsledkem dvakrát. Když si ho naklonuji přes
{var $news2 = clone $news}
tak Nette Database pokládá dotaz zbytečně dvakrát. Tj šiklo by se něco jako $selection->fetchReset() a projet to podruhé. - na pár místech by se zase hodilo, abych mohl projet foreachem zbylé výsledky po fetchi. Tj. potřebuji třeba první řádek výsledku fetchnout a zobrazit ho nějak a zbytek foreachnout. Bohužel na výsledek nefungují funkce pro práci s poli, jak jsem zvyklý – array_shift a jeho kámoši.
Co jsem se díval do zdrojáků, tak Selection je implementuje ArrayHash a Traversable, jestli se nemýlím, takže by to asi výše uvedené mělo umět, ale moc netuším jak. Nakopnutí kamkoli mi bude přínosem :) předem díky :)