O Framework Zend 2, possui um recurso muito interessante, e
prático, que é a possibilidade de se criar formulários separados da camada de
visão.
No início pode parecer meio confuso, ou até mesmo
desnecessário, mas conforme vamos utilizando, vemos sua total praticidade:
- A possibilidade de incluir ou remover um campo sem mexer, e possivelmente quebrar, o HTML;
 - Definir um campo como necessário ou não;
 - Trocar o nome do campo do formulário;
 - Tratar a validação do formulário e etc.
 
Vamos fazer um exemplo prático que será utilizado
futuramente para gravar um registro no banco de dados.
Vamos abrir o Eclipse PDT e criar a pasta “Form” dentro de “module/Usuario/src/Usuario”
Dentro da pasta Form, que acabamos de criar,
vamos criar o arquivo CadastroForm.php com o seguinte conteúdo:
<?php
namespace Usuario\Form;
use Zend\Form\Form;
class CadastroForm extends Form {
       public function __construct($fieldset) {
             parent::__construct($fieldset);
             $this->setAttribute('method', 'post');
             $this->add(array(
                           'name' => 'nome',
                           'attributes' => array(
                                  'type' => 'text',
                           ),
                           'options' => array(
                                  'label' => 'Nome',
                           )
             ));
             $this->add(array(
                           'name' => 'email',
                           'attributes' => array(
                                  'type' => 'text',
                           ),
                           'options' => array(
                                  'label' => 'Email',
                           ),
             ));
             $this->add(array(
                           'name' => 'password',
                           'attributes' => array(
                                  'type' => 'password',
                           ),
                           'options' => array(
                                   'label' => 'Senha',                    
                           ),
             ));
             $this->add(array(
                           'name' => 'submit',
                           'attributes' => array(
                                  'type' => 'submit',
                                  'value' => 'Gravar',
                                  'id' => 'submitbuton',
                           ),
             ));
       }
}
Nosso CadastroController.php, agora, ficou assim:
<?php
/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link     
http://github.com/zendframework/ZendSkeletonApplication for the
canonical source repository
 * @copyright Copyright (c)
2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
 * @license  
http://framework.zend.com/license/new-bsd New BSD License
 */
namespace Usuario\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Usuario\Form\CadastroForm;
class CadastroController extends AbstractActionController
{
   
public
function indexAction()
   
{
       
return
new ViewModel();
   
}
   
public
function adicionarAction() {
   
   $form = new CadastroForm('cadastro');
   
   $form->get('submit')->setValue('Cadastrar');
   
   return array('form' => $form);
   
}
   
public
function apagarAction() {
   
}
   
public
function editarAction() {
   
}
}
Vamos exibir agora o nosso formulário. Abra o
arquivo adicionar.phtml da pasta “module/Usuario/view/usuario/cadastro” e cole
o seguinte código:
<?php 
$title = 'Novo Cadastro';
$this->headtitle($title);
?>
<h1><?=$this->escapehtml($title) ?></h1>
<?php 
$form = $this->form;
$form->setAttribute('action', $this->url('cadastro', array('action' => 'adicionar')));
$form->prepare();
?>
<?=$this->form()->openTag($form)?>
<?=$this->formCollection($this->form)?>
<?=$this->form()->closeTag($form)?>
Explore a documentação do Zend para a lista completa dos atributos
Nenhum comentário:
Postar um comentário