Filtros já inclusos no SuitUp

Após validar um campo do formulário pode ser necessário fazer alguns filtros nele antes de utilizar estes dados, por questão de segurança e também de integridade das informações que você vai salvar no banco de dados. Mas do que se tratam esses filtros? Remoção de espaços desnecessários, de caractéres como pontos, vírgulas, etc..

Confira abaixo a lista de métodos para filtros que já vem junto com o SuitUp

string trim toDbDate digits toDouble

string

Este método remove espaços em branco no início e final do campo do formulário e também aplica a função strip_tags que protege contra inserção de tags HTML.

Exemplo:

1
2
3
4
5
// File: ModuleDefault/Form/Index/Index.php

protected $data = array(
    'name' => array('validation' => array(), 'filter' => array('string')),
);

trim

Este método remove espaços em branco no início e final do campo do formulário. O filtro string é uma espécie de evolução deste método e oferece mais segurança. Isso não quer dizer que este método esteja obsoleto, apenas depende de qual a sua necessidade.

Exemplo:

1
2
3
4
5
// File: ModuleDefault/Form/Index/Index.php

protected $data = array(
    'name' => array('validation' => array(), 'filter' => array('trim')),
);

toDbDate

Este método foi feito pensando no formato de data utilizado no Brasil (dd/mm/yyyy), ele pega este formato e o reverte para caber no formato universal do banco de dados (yyyy-mm-dd).

Atenção

Este método não valida se o formato de entrada está correto, ele apenas realiza a inversão, por isso certifique-se de criar um método de validação neste mesmo campo para garantir que o formato está correto.

Exemplo:

1
2
3
4
5
// File: ModuleDefault/Form/Index/Index.php

protected $data = array(
    'name' => array('validation' => array(), 'filter' => array('toDbDate')),
);

digits

Este método garante que o campo irá retornar somente números (dígitos, inteiros), ele remove automaticamente todos os caractéres que são diferentes de 0 a 9.

Funciona somente com INTEIROS, para float ou double utilize toDouble

Exemplo:

1
2
3
4
5
// File: ModuleDefault/Form/Index/Index.php

protected $data = array(
    'name' => array('validation' => array(), 'filter' => array('digits')),
);

toDouble

Este método foi criado pensando no formato de moeda brasileira atual (BRL - Real), ou seja, R$ 999.999,99. Este método pega um número que chegou neste formato ou parecido e o transforma para double.

Este método utiliza as seguintes expressões regulares array("/[^0-9,.]/", "/\./", "/\,/"). Isso significa que são três passos de formatação do campo. 1º Remover os caractéres que não sao numéricos, vírgula ou ponto. 2º Remover os pontos e 3º substituir a vírgula por ponto. Após isso o PHP consegue fazer a conversão para double facilmente.

Se o formato do campo for o inverso (R$ 999,999.99) então este método não será eficiente, para isso você deve implementar seu [[próprio filtro|4.4 Filtro Personalizado]].

Exemplo:

1
2
3
4
5
// File: ModuleDefault/Form/Index/Index.php

protected $data = array(
    'name' => array('validation' => array(), 'filter' => array('toDouble')),
);