Bug v setItems anebo delam neco spatne?

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

Chci vygenerovat select s ciselnymi hodnotami, kod vypada nasledovne:

$form->addSelect("age_from")
			->setItems(range(18, 80), false);

Pri dumpovani vystupu funkce range se vrati pole s prvky 18 – 80, pokud to poslu do funkce setItems, tak se mi do selectu nastavi 18 prvku, kde nejvyssi z nich ma hodnotu 80, nejnizsi pak 63.

Delam neco spatne, nebo je to bug?

EDIT: Pokud pouziju jako druhy argument true, tj. use keys, tak jsou tam vsechny prvky, jen maji spatne indexy.

EDIT2: Musel jsem si ty indexy vytvorit sam, pak to funguje, ale tohle stejne stoji za zminku.

Pouzivam Nette 2.1.0 stable a PHP 5.5.

Editoval kudlajz (13. 1. 2014 19:52)

honos
Člen | 109
+
0
-

kudlajz napsal(a):

EDIT: Pokud pouziju jako druhy argument true, tj. use keys, tak jsou tam vsechny prvky, jen maji spatne indexy.

Nemam po ruce pocitac tak to nemuzu projit, jak to myslis ze to ma spatne indexy?
[0=>18, 1=>19,...] nebo jak?

kudlajz
Člen | 70
+
0
-

Ano, potrebuju, abych v items mel pole [18 ⇒ 18, 19 ⇒ 19, …], ale kdyz nastavim useKeys na false, tak mi to ty items nastavi spatne.

Problem je v tom, ze se v metode setItems nastavuji indexy s hodnotami do puvodniho pole misto do noveho.

Editoval kudlajz (13. 1. 2014 20:43)

Patrik Votoček
Člen | 2221
+
0
-

kudlajz napsal(a):

$form->addSelect("age_from")
	->setItems(array_combine(range(18, 80), range(18, 80)));
David Grudl
Nette Core | 8228
+
0
-

Fixed in master