Zjednotenie dvoch vysledkov z DB
- gogy27
- Člen | 6
Zdravím,
mám dve funkcie v odvodenej triede z triedy Repository, ktoré mi vracajú výsledky z databázy (objekt Nette\Database\Table\Selection)
<?php
public function getMainCategories();
public function getSubCategories($parent = 0);
?>
V Presenteri by som chcel do jednej premennej priradiť zjednotenie týchto dvoch výsledkov. Skúšal som to urobiť spôsobom priradenie k existujúcemu polu.
<?php
$tags = $this->categories->getMainCategories()->where(array("tag" => 1))->order("id ASC");
$tags[] = $this->categories->getSubCategories()->where(array("tag" => 1))->order("id ASC");
$this->template->tags = $tags;
?>
Nanešťastie v premennej $this->template->tags mi zostanú iba výsledky z prvého dopytu. Môžete mi pomôcť ako na to, prípadne aj vysvetliť, že prečo je moja idea zlá?
Ďakujem
Editoval gogy27 (3. 2. 2014 13:42)
- David Matějka
- Moderator | 6445
jak pises, vraci se ti Nette\Database\Table\Selection, coz je Iterator objekt, pokud s nim chces pracovat jako s polem, musis to pomoci funkce iterator_to_array prevest na pole – pak oba vysledky spojis treba pomoci array_merge
pripadne muzes pouzit treba AppendIterator
$tags = new \AppendIterator();
$tags->append($this->categories->getMainCategories() .....);
$tags->append($this->categories->getSubCategories() ....);
$this->template->tags = $tags;