Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF]Pobieranie z bazy wartość i przypisanie go do select'a w formularzu
Forum PHP.pl > Forum > PHP > Frameworki
IceManSpy
Witam

Kiedyś na forum Zenda prosiłem o pomoc na powyższy problem (tak było pobieranie ról dla użytkownika). Uzyskałem odpowiedź, która działała. Jednak zastanawiam się nad jej poprawnością. Taka jest metoda na pobieranie ról dla użytkowników:
  1. protected $_name = 'rola';
  2.  
  3. public function listaRol()
  4. {
  5. $select = $this->select();
  6. $select->order('id ASC');
  7. $result = array();
  8. foreach ( $this->fetchAll($select) as $cur )
  9. {
  10. $result[ $cur[ 'id' ] ] = $cur[ 'rola' ];
  11. }
  12. return $result;
  13. }

A w formularzu tak dodaję selecta:
  1. $role = new Application_Model_Rola();
  2. $lista_rol = $role->listaRol();
  3.  
  4. $rola = $this->createElement('select','rola');
  5. $rola->setLabel('Rola:');
  6. $rola->setMultiOptions($lista_rol);

Czy to jest Zendowsko poprawnie? smile.gif Nie da się zrobić jakoś w modelu tak, aby zwróciło fetchAll a potem jakoś to podpiąć pod formularz?
Daimos
Nie ma chyba innej opcji. Musisz niestety sam przerabiać tablicę, aby ID było w odpowiednim miejscu. A żeby było bardziej optymalnie, możesz ją wygenerować ręcznie w widoku formularza (zamiast wypluwać gotowego selecta)
melkorm
Zainteresuj się metodą fetchPairs, która od razu zwraca id - name, wtedy nie musisz sam robić foreach'a wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.