Promenit database selection na form select a dostat id do indexu

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

Pres ->query() jsem si z databaze vytahl volne postele v hostelu a chci z toho udelat select list pro formular, ale nevim jak to dokazat. Nize je jak vypada vysledek z db $postele a jak bych chtel aby byl strukturovanej ten vstup pro ten select. Jestli by mi s tim nekdo poradil tak budu moc vdecny.

$postele

array (14)
0 => Nette\Database\Row #3979
id => 1
roomId => 1
virtual => 0
type => "Luxury Room P" (13)
private => 1
//...12 dalsich poli..
13 => Nette\Database\Row #4905
id => 20
roomId => 5
virtual => 0
type => "Dorm" (4)
private => 0

zadany vysledek

$selectList = array(
			'1' => 'Luxury Room P, pokoj 1, postel 1, real, private',

			//...tech 12 radku mezi tim
			//takze je to vzdy: $id => $type, pokoj $roomId, postel $id, {if $virtual==1}virtual{else}real{/if}, {if $private==1}private{else}shared

			'20' => 'Dorm, pokoj 5, postel 20, real, shared',
		);

//a pak
$form->addSelect('designatedBed', "Move guest to bed", $selectList)
warriotox
Člen | 30
+
0
-

tak kamarad poradil. reseni:

$selectList = [];

		foreach ($availableBeds as $bed)
		{
			$selectList[$bed->id] = "
				$bed->type, $bed->roomId, $bed->id, "
				. ($bed->virtual ? "virtual" : "real") . ", "
				. ($bed->private ? "private" : "shared");
		}