InputFilter

InputFilter
Se inserirmos alguns campos do form no ValidationGroup, então eles serão validados, mas o que será verificado? A solução para essas questões vem do uso do InputFilter.
Como serão as validações de cada campo, como por exemplo, tamanho do dado, se é obrigatório ou não e outros, devem ser reunidos em um InputFilter. E tudo começa com a ideia de nossa classe formulário chamada MyForm implementando a interface InputFilterAwareInterface.
Se isso ocorresse, a classe MyForm deveria implementar o método setInputFilter(InputFilterInterface $inputFilter) e um atributo que referencie o InputFilter, porém a classe Form já possui essa interface implementada, métodos e atributos existentes. Além disso, a classe Form possui segundo e próprio método para trabalharmos com InputFilter chamado setInputFilter(InputFilterInterface $inputFilter).
Um outro detalhe importante é que os InputFilters são criados à partir de uma factory de inputs chamado Zend\InputFilter\Factory. Essa factory possui um método chamado createInputFilter(array) onde passaremos um vetor com nossos filtros.
namespace Application\Form;
use Zend\Form;
class MyForm extends Form {
     function __contruct() {
         $this->setAttribute(‘method’, ‘post’);
         $this->setAttribute(‘id’, ‘my-form’);
         //..Add fields with $this->add()
         $this->setInputFilter(
             new Factory()->createInputFilter(
                 array(
                      ‘sex’ => array (
                           ‘required’ => true
                      ),
                      ‘name’ => array (
                           ‘allow_empty’ => false
                      ),
                 )
             )
         );
         $this->setValidationGroup(
             array(
                 ‘security’,
                 ‘sex’,
                 ‘name’,
             )
         );
    }
}
Após nosso InputFilter pronto, não podemos esquecer de inserir nossos campos no ValidationGroup. Assim, temos a combinação de validações em cada campo e os campos que deverão ser validados.
Repare que a biblioteca do framework já possui alguns validators e estamos utilizado-os em nosso InputFilter, como por exemplo, o required e allow_empty.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s