Tecnologia -> Linguagem -> PHP -> Selecionados no Zend Framework: Código e exemplo

Selecionados no Zend Framework: Código e exemplo
Embora eu já discutem como criar dropdown em um de meu artigo anterior, no entanto aqui eu iria discutir um pouco em detalhe.Você pode criá-lo usando o seguinte código.



classe CustomForm estende Zend_Form 
{ 
    public function init () 
    { 
        setMethod ('post') $ this->; 
        $ this-> setAction ('user / processo');         país US $ = $ this-> createElement ('select' , 'países');         $ country -> setLabel ("Países: ')             -> addMultiOptions (array (                     'EUA' => 'Estados Unidos',                     'UK' => 'United Kingdom'                         ));         } }
        

Ou também podem ser criados usando o seguinte código.

classe CustomForm estende Zend_Form 
{ 
    public function init () 
    { 
        setMethod ('post') $ this->; 
        $ this-> setAction ('user / processo'); 
        país US $ = new Zend_Form_Element_Select ('países');
        $ país -> setLabel ("Países: ') -> 
             addMultiOptions (array ('EUA' => 'Estados Unidos', 'UK' => 
                     'United Kingdom')
         );         
      } 
 }
As opções são o código rígido em ambos os casos. Esta não será exigência sempre.
Algum tempo ou a maioria dos aplicativos que precisam de tempo suspenso deve ser preenchido buscar os registros da base de dados.Assim, para este fim, gostaria de implementar o seguinte código.
Punho em seu modelo escrever o seguinte.

Países classe estende Zend_Table 
{ 
    protected $ _name = 'países'; 
    getCountriesList função pública () 
    { 
        $ select = $ this-> _db-> select () 
                            -> from ($ this-> _name, 
                    array ("chave" => 'id', 'value' => 'country_name')) 
        resultado = $ this-> getAdapter () - fetchAll> ($ select); 
        return $ resultado; 
    } 
}

Tenha em mente que os registros que buscar vai ter uma matriz associado ter id como chave eo nome do país como valor. Se você não definiu o array acima, array ('chave' => 'id', 'value' => 'country_name'), como já definido, você não vai conseguir o que deseja.Portanto, tenha cuidado ao buscar registros para a construção suspensa. E agora, em seu formulário de escrever o seguinte código.



classe CustomForm estende Zend_Form 
{ 
    public function init () 
    { 
        setMethod ('post') $ this->; 
        $ this-> setAction ('user / processo');         $ países Países = new ();         $ countries_list = $ countires-> getCountriesList ();                 ; $ country = new Zend_Form_Element_Select ('países')         país US $ -> setLabel ("Países: ')             -> addMultiOptions ($ countriesList                         ));         } }
        

No código acima a única coisa que muda é
1. Tenho instanciado modelo usando
$ países = Países new (); 2. Chamada getCountiresList () método. E atribuir a lista ao invés de atribuir difícil valores codificados.