Ako správne uložiť Array() v Selectbox do DB

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

Zdravím…
Vysvetlil by mi niekto ako správne uviesť array() v selectbox tak aby mi do databázy uložilo správnu hodnotu?

$services = array(
			'1' => 'Moje aplikácie',
			'2' => 'Aplikácie z  tretích strán',
			'3' => 'Vzorové aplikácie',
			'4' => 'Doplnky pre aplikácie'
		);
		$form->addSelect('service', 'Služba', $services)
			 ->setAttribute('class', 'chosen-select noRadius');

Momentálne sa mi do DB a pri zobrazení ukazuje 1,2,3,4
Ako uložiť namiesto čísiel Text?

Všetkým vopred ďakujem.

Myiyk
Člen | 321
+
+2
-

Asi nejjednodušší možnost je tohle

$services = array(
            1 => 'Moje aplikácie',
            2 => 'Aplikácie z  tretích strán',
            3 => 'Vzorové aplikácie',
            4 => 'Doplnky pre aplikácie'
        );

$form->addSelect('service', 'Služba')
     ->setItems($services, FALSE)
     ->setAttribute('class', 'chosen-select noRadius');

api setItems

Editoval Myiyk (13. 12. 2015 14:25)

Aurielle
Člen | 1281
+
+2
-

Pokud nastavuješ $useKeys na FALSE, ani ty klíče nemusíš v poli hodnot nastavovat :)

SontoEremo
Člen | 341
+
0
-

Ďakujem @Myiyk @Aurielle
Ešte sa chcem spýtať prečo sa to nemôže úvadzať takto?

$services = array(
            'Moje aplikácie '=> 'Moje aplikácie',
            'Aplikácie z  tretích strán' => 'Aplikácie z  tretích strán',
            'Vzorové aplikácie' => 'Vzorové aplikácie',
            'Doplnky pre aplikácie' => 'Doplnky pre aplikácie'
        );
$form->addSelect('service', 'Služba', $services)
     ->setAttribute('class', 'chosen-select noRadius');
Aurielle
Člen | 1281
+
+2
-

Samozřejmě to můžeš udělat i takhle, jen se pak zbytečně opakuješ a poněkud špatně se ti to bude rozšiřovat nebo v tom dělat změny.

Ondris
Člen | 37
+
0
-

Tady zastávám opačný názor než Aurielle, radši si tu informaci zduplikuju, ale zachovám přehlednost kódu. Asi bych v první chvíli byl značně překvapen, kdybych měl v klíči čísla a formulář by mi vracel řetěžce.
Samozřejmě je mi jasný, že je to v první řadě otázka zvyku.

greeny
Člen | 405
+
+1
-

Tak já taky přispěju s nějakou možností :) přehledný a neduplikovaný kód FTW!

$values = [
	'Moje aplikácie',
	'Aplikácie z tretích strán',
	'Vzorové aplikácie',
	'Doplnky pre aplikácie'
];

$form->addSelect('service', 'Služba', array_combine($values, $values));