Nette\Database – Vazební sloupec

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pan Dobrman
Člen | 45
+
0
-

Dobrý den, mám v databázi tabulku Something, která vypadá takto:

id name parent_id
1 první NULL
2 druhá 1
3 třetí 2

A potřebuju z ní dostat přes Nette\Database data v asociativním poli, v takovémto tvaru:

array(3) {
   "první" => NULL
   "druhá" => "první" (6)
   "třetí" => "druhá" (6)
}

Je to možné? Za všechny rady děkuji.

Editoval Pan Dobrman (1. 7. 2012 18:40)

ViPEr*CZ*
Člen | 817
+
0
-

přes fetchPairs by to mělo fungovat ;-)

Pan Dobrman
Člen | 45
+
0
-

Ano, to jsem skoušel:

$this->something->select('*')->fetchPairs('name', 'parent_id');

Nevím ale, jak se dostat k názvu rodiče

Editoval Pan Dobrman (1. 7. 2012 18:56)

vvoody
Člen | 910
+
0
-

to je moc specificke, proste si to pole v modely vytvor, nejako takto (z hlavy)

$pole = array();
foreach($this->something->select('*') as $row){
	$pole[$row->name] = $row->parent_id===NULL?NULL:$row->ref('something','parent_id');
}
ViPEr*CZ*
Člen | 817
+
0
-

Jsem malilinkato špatně koukal… nevšiml jsem si, že chceš reference… tak na to je odpověď: „ne nejde“. Buď si sestav pole sám jak navrhuje vvoody anebo spíš ten přístup k tomu poli přehodnotit (pokud to jen je možné).