Nette\Database aneb traverzování kategorií
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Jakub Kontra
 - Člen | 30
 
Zdravím komunitu,
jsem začátečník s Nette a mám problém s Nette Database.
Potřeboval bych rekurzivně traverzovat okolo stromu, což se mi
„úspěšně“ daří, nýbrž chyba je zde
Struktura tabulek + dummy data – Odkaz
Potřeboval bych poladit spíše dotaz.
{block #category}
		{if count($categories) > 0}
			<ul>
					{foreach $categories as $category}
					<li>
						{ifCurrent Category: $category->id}
							<strong>{$category->title}</strong>
						{else}
							<a n:href="Category: $category->id">{$category->title}</a>
						{/ifCurrent}
							 {include #category, 'categories' => $category->children}
					</li>
					{/foreach}
			</ul>
		{/if}
	{/block}
Proměnná
$category->children
by měla obsahovat všechny children kategorie nadřazené parent, nejsem schopen dotazem dostat tyto informace
mohl by mne někdo prosím „Nakopnout“ jak dále?
Díky
Jimmy

- vvoody
 - Člen | 910
 
Odporučil by som ti switchnúť children za parent. Logicky ak som na riadku Notebooky, tak odkaz na riadok 2, čiže Počítače, je rodič.
V šablóne:
{include #category, 'categories' => $category->related('parent','categories')}
alebo ak neposlúchneš moju radu :) tak:
{include #category, 'categories' => $category->related('children','categories')}
(Predpokladám že id je nastavené ako primary key)

- Jakub Kontra
 - Člen | 30
 
Dotaz vypadá takto
	$this->categoryRepository->findBy(array('parent' => NULL));
public function findBy(array $by)
{
	return $this->getTable()->where($by);
}
				
- Jakub Kontra
 - Člen | 30
 
Fixed!
$this->template->categories = $this->categoryRepository->findBy(array('parent' => NULL,'children' => NULL));
Díky moc za pomoc!