Nette\Forms – naplnění selectu
- TanisCZ
- Člen | 80
Zdravím,
Mám menší problémek. Mám v db uložené nějaké data – dejme tomu,
že uživatele.
Dále mám formulář a v něm mám jeden select box. No a do něj potřebuji
naplnit všechny uživatele z db.
SQL dotaz proběhne v poho…
$users = dibi::fetchAll("SELECT jmeno FROM users");
$usersForm->addSelect('users','Výběr :',$users);
Do nedávna vše fungovalo, ale v poslední revizi mi aplikace háže chybu, že $users jsou objekt. Což jsem si i ve foru o dibi našel. Nicméně stále se mi nedaří naplnit onen select.
Zkoušel jsem ještě experimenty s DibiTable a dopadl jsem podobně :(
Za každou radu dík
- TanisCZ
- Člen | 80
Tak jsem se snažil celou dokumentaci pořádně pročíst a v jednom příspěvku jsem našel od Davida informaci, že Fetch vrací už jen objekt, který by se měl zároveň chovat jako pole. Jak ale přinutit select, tak aby vzal data z Fetch.
Pořád mi to hlási nejrůznější chybky typu : Argument 3 passed to FormContainer::addSelect() must be an array, object given
Jak z toho ven? :-( Je to pro mě v téhle fázi celkem důležité
- romansklenar
- Člen | 655
Nepomohlo ani přetypování?
$usersForm->addSelect('users', 'Výběr :', array($users));
- TanisCZ
- Člen | 80
Jediné co mě napadlo je celý ten fetch přes foreach projít a každou tu položku zapsat do pole, které si předem připravím. Ale přijde mi to jako škrábání se levou nohou za pravým uchem…
A ještě dodám, že se staršíma revizema příklad fungoval v pořádku
Takže se mi podařil další posun.
array($user['1']->jmeno,$user['2']->jmeno)
atd.. tak se mi
daři jednotlivé položky vypisovat…
Editoval TanisCZ (21. 10. 2008 12:21)
- TanisCZ
- Člen | 80
Díky moc! FetchPair je opravdu mocná funkce a teď jen lituji, že jsem
o ni nevěděl mnohem dřív. Díky moc.
Ještě otázka je možné FetchPair používat i nějakým způsobem
u DibiTable?A doporučuje autor používat DibiTable a nebo je pořád spíš
jen v epxerimentální podobě?
Každopádně moc moc dík .)