Tecnologia -> Linguagem -> PHP -> Zend Framework Form (Zend_Form) tutorial

Zend Framework Form (Zend_Form) tutorial

Agora vamos discutir como você pode usar o componente Zend_Form para a criação de formulário html com facilidade, filtros e manipulação de mensagens de erros e como ver como você pode facilmente buscar dados da fonte de dados e apresentar em formato html e deixar os visitantes mudar / alterar os dados existentes e salvar as alterações na fonte de dados.
estou gona quebrar este tópico em três etapas.
1. Criando Zend_Form
Embora eu já discutimos criação de Zend_Form em alguns de meus artigos, mas que será melhor para discuti-lo aqui novamente.
Criando formulário Zend é simples é esta.
classe CustomForm estender Zend_Form 
{ 
    public function init () 
    {     } }
definida uma classe, estendendo-o a partir Zend_Form. Isso permite acesso a muitos dos métodos já definidos no Zend_Form.
A única coisa que você precisa fazer é substituir método init () e criar o seu próprio elemento, tais como caixa de entrada, selecione declaração, checkboxes botões, rádio e assim por diante.
Definindo seu próprio elementos não levam muito código. Ter um olhar para o código a seguir.
classe CustomForm estender Zend_Form 
{ 
    public function init () 
    { 
        $ this-> setMethod ('post'); 
        $ this-> setAction ('processo / form');         $ username =
        
No código acima, temos o método init () substituído de Zend_Form, defina o método de solicitação de formulário e ação e, em seguida elemento de entrada definido chamado username. Você pode colocar como muitos elementos nesta forma como você deseja. A última instrução é usado para adicionar elementos às formas. Para adicionar vários elementos para a forma de uma só vez, use addElements () matriz de passagem de elementos como um argumento. Você vai olhar um exemplo no exemplo seguinte. Meu olhar formulário inteiro gosta


classe CustomForm estende Zend_Form 
{ 
    public function init () 
    { 
        $ this-> setMethod ('post');         $ id = $ this-> createElement ('hidden', 'id');         $ nome = $ this-> createElement (' texto ',' firstname ');         $ firstname-> setLabel ('Nome:')                     -> setAttrib ('size', 50);         $ sobrenome = $ this-> createElement ('texto', 'sobrenome');         $ lastname-> setLabel ("Last Name: ')                 -> setAttrib ('size', 50);         $ username =         = $ This-> createElement ('texto', 'email');         $ email-> setLabel ('Email:')                 -> setAttrib ('size', 50);         $ password =         = $ This-> createElement ('password', 'senha2');         $ password2-> setLabel ('Confirme a senha::')                     -> setAttrib ('size', 50);         $ registo =
A maioria das funções são simples e auto-explicativo. O único método que eu acho que é melhor eu explicar aqui é o método setIgnore (). O método setIgnore () tem um uso muito valioso. Bem, se nós vemos todo o formulário você vai sentir que precisamos de todos os valores quando o formulário é submetido. O único valor que não precisamos é o valor do botão de envio, pois isso só usado para enviar o formulário. Nós não estamos interessados ​​no seu valor, por isso nós dizemos setIgnore () método passando valor booleano verdadeiro. 2. Como temos agora criado um formulário, o próximo passo é a criação de seu objeto no controller e escrever código que irá salvar os dados para nós. Criar um controlador como


classe UsersController estende Zend_Controller_Action 
{ 
    .....     addAction função pública ()     {         / / $ this-> _helper-> layout-> disableLayout ();         $ users Usuários = new ();         $ form = new CustomForm ();         $ this -> view-> form = $ form;         if ($ this-> GetRequest () -> isPost ()) {         $ FormData = $ this-> _REQUEST-> getPost ();             if ($ form-> isValid ($ FormData )) {                 if ($ FormData ['password']! = $ FormData ['senha2']) {                     $ this-> view-> errorMsg = Senha "e Confirmar senha deve

O que estamos fazendo aqui, é bem simples. Criar um objeto de modelo de Usuários. Bem, eu não discutimos modelo de Usuários ainda.Gostaria de discuti-lo para você em breve. A linha seguinte cria um objeto do formulário criado anteriormente. Em seguida, atribuir o formulário para o modelo de visão, no nosso caso o modelo é add.phtml.
Próxima poucas linhas são de muita importância.
Verificamos se o pedido é um primeiro ou segundo poste. Se formulário foi submetido, o método $ this-> GetRequest () - estruturas retorno isPost> (). Neste caso teremos de cuidar dos dados que estão sendo submetidos.
Para lidar com o posto para trás, podemos obter os dados sido enviada de volta através da forma, verificar a sua validade, verificar se a senha e confirme a senha partidas, e inserir os valores no " usuários "tabela utilizando $ users-> insert ();. declaração
. Se a forma não é válido, o código para inserir os dados no banco de dados não será executada
Agora vamos discutir "os usuários do modelo".
Nós temos uma tabela em nosso banco de dados chamado "usuários" contendo diferentes campos, tais como firstname nome de usuário, apelido etc
Teremos que criar nosso modelo como
Usuários classe estende Zend_Db_Table 
{ 
    protected $ _name = "users"; 
}

É isso, um modelo simples.
3. O terceiro passo na criação de um aplicativo de formulário pleno desenvolvimento no Zend Framework é camada de apresentação, chamada de ver / template.
Em seus scripts / users / create directory add.phtml e coloque o seguinte código nele

< h3 > Adicionar usuário  

    if ($ this-> errorMsg) { 
    echo $ this-> errorMsg; 

? > 
<php 
    / / para exibir formulário 
    echo $ this-> form; 
? >


O código acima é auto-explicativo.
O processo acima mostra apenas um formulário e envia dados para o banco de dados. Se você deseja criar formulário de edição, você vai precisar fazer um pouco de mudança no seu controlador.

Vamos criar uma outra ação chamada editAction contendo o seguinte código.
classe UsersController estende Zend_Controller_Action 
{ 
    .....     editAction função pública ()     {         / / $ this-> _helper-> layout-> disableLayout ();         $ users Usuários = new ();         ; $ form = new CustomForm ()         id $ = $ this-> _getParam ("id", 1);         $ select = $ users-> select ()                 -> where ("id =?", $ id);         $ data = $ users-> fetchRow ($ select) ;         $ form-> populate ($ data-> toArray ());         if ($ this-> GetRequest () -> isPost ()) {         $ FormData = $ this-> _REQUEST-> getPost ();             if ($ form -> isValid ($ FormData)) {                 ! if ($ FormData ['password'] = $ FormData ['senha2']) {                     $ this-> view-> errorMsg = Senha "e Confirmar senha deve             = $ Id ");             }         }         $ this-> view-> form = $;     } }

Você pode ver claramente que eu fiz apenas algumas linhas de mudanças.
Primeiro eu obter o ID do usuário através de $ this-> método _getParam (). Eu, então, criar uma instrução select na tabela de usuários e depois buscar uma linha. Uma vez que recebo a linha de dados, eu preencher o formulário usando populate () método.
A única coisa que você vai precisar agora, é criar um modelo de visão em seus scripts / users / diretório chamado edit.phtml e escrever o seguinte código.

    if ($ this-> errorMsg) { 
    echo $ this-> errorMsg; 
} 
> 
? 
    / / para exibir formulário 
    echo $ this-> form; 
?>

Bem eu estava pensando em explicar tudo em três passos, mas penso que ficaria incompleta se eu não explicar como mostram os dados inseridos na base. Por esta razão eu vou adicionar 4 º passo.

4. Mostrando a lista de dados
Crie uma ação chamada indexAction em seu controlador com o seguinte código.
classe UsersController estende Zend_Controller_Action 
{ 
    indexAction função pública () 
    { 
        / / $ this-> _helper-> layout-> disableLayout (); 
        $ users = Usuários new (); 
        $ data = $ users-> fetchAll ($ users-> select ( )); 
        $ this-> view-> data = $ data-> toArray (); 
        / / Zend_Debug:: dump ($ data-> toArray ()); 
    }     ..... }
Primeiro criamos um objeto do nosso modo. E depois buscar os dados usando o método fetchAll (). A última instrução atribui os dados buscados para o modelo de visão.

Agora crie scripts / users / index.phtml e escrever o seguinte código nele.
Lista 

de usuários

Adicionar novo usuário Nome
Primeiro Sobrenome Username e-mail Action dados como $ d) href = "edit / id /"> Editar Aqui estamos criando uma tabela que mostra a lista de dados.