
A classe UsuarioController deverá possuir o conteúdo a seguir:
UsuarioController.php
class UsuarioController extends GenericoController {
public function getForm() {
$form = new Zend_Form();
$form->setAction($this->getBaseUrl().'/usuario/login')
->setMethod('post');
// cria e configura o elemento usuário
$usuario = $form->createElement('text', 'usuario');
$usuario->addValidator('alnum')
->addValidator('regex', false, array('/^[a-z]/i'))
->addValidator('stringLength', false, array(6,20))
->setRequired(true)
->addFilter('StringToLower');
// cria e configura o elemento senha
$senha = $form->createElement('password', 'senha');
$senha->addValidator('StringLength', false, array(6))
->setRequired(true);
// adiciona elementos ao formulário
$form->addElement($usuario)
->addElement($senha)
->addElement('submit', 'login', array('label' => 'Login'));
return $form;
}
public function indexAction() {
// renderize usuario/form.phtml
$this->view->form = $this->getForm();
$this->render('form');
}
public function loginAction() {
if(!$this->getRequest()->isPost()) {
return $this->_forward('index');
}
$form = $this->getForm();
if(!$form->isValid($_POST)) {
//falha na validação; exibe o formulário novamente
$this->form = $form;
return $this->render('form');
}
$valor = $form->getValues();
}
}
Observação no $this->getBaseUrl(). Deverá ser inserida a baseUrl do projeto, inseri o método no GenericoController para ser utilizado nos demais Controllers, o método é público e contém o código return $this->getFrontController()->getBaseUrl();
O arquivo form.phtml deverá possuir o seguinte conteúdo: < ? = $this->form; ?>
Caso seja exibido apenas form; ?>, é necessário habilitar as short tags no PHP conforme exemplo a seguir:
Habilitar short tags no PHP
No arquivo configuração do PHP, php.ini procure pela palavra abaixo:
short_open_tag
Apague off e escreva on.
Reinicie o Apache.
Pronto, agora a tag estará disponível para utilização. Conforme rege a documentação oficial do Zend_Form.
fonte: http://framework.zend.com/manual/en/zend.form.html
Atenciosamente,
Rondson Lima
Nenhum comentário:
Postar um comentário