CakePHP Brasil

22 maio 2008

Novas opções de validação

Arquivado em: CakePHP — Tags:, , , , , — Juan Basso @ 12:14 am

Este post é baseado no post Three new validation rules, de Daniel Hofstetter.

Recentemente foram incluídas novas regras de validação. Com isso, você pode usar três novas regras de validação nos seus models: boolean, inList e time.

boolean é auto-explicativa: testa se o valor é booleano (0 ou 1, false ou true, ‘0′ ou ‘1′).

1
var $validate = array('is_enabled' => array('rule' => array('boolean')));

inList é para verificar se um valor está dentro de uma lista.

1
var $validate = array('cor' => array('rule' => array('inList', array('vermelho', 'verde', 'azul'))));

time determina se o valor informado está num formato de hora válida.

1
var $validate = array('hora_inicial' => array('rule' => array('time')));

 
Para complementar, criei o ticket 4727 para que coloquem nas regras de validação os formatos brasileiros. São três formatos específicos: postal code (nosso CEP), phone (formato de telefone. Coloquei com código internacional, código de área e telefone, além de 0300, 0800 e 0900) e ssn (não é muito igual, mas coloquei a regra do CPF, que é o similar aqui no Brasil). Quando sair o resultado eu informo a vocês.

6 Comentários »

  1. Amigo,

    Li o seu post e achei bem bacana a iniciativa de abrir o ticket informando as regras de validação dos formatos brasileiros. Mas pelo que vi, o CPF é apenas uma expressão regular. Não deveria ser feito todo o cálculo para verificar se o CPF é realmente válido? Teria como os desenvolvedores do CakePHP implementarem isso?

    Abraço

    Comentário por Vinicius Mendes — 29 agosto 2008 @ 5:58 pm

  2. Fala Juan,

    Muito bom! Só um detalhe, eu li o ticket que você abriu e tem lá:

    — quote >> Olhe os colchetes —
    The following regex validates postal codes for Brazil:

    [aqui uma regex que eu acredito validar os telefones no Brazil]

    The following regex validates postal codes for Brazil:

    [aqui uma regex que eu acredito validar o CEP do Brazil]

    [...]
    ————————————

    Seria bom corrigir para não gerar confusão na cabeça dos desenvolvedores.

    Abração e parabéns

    Comentário por Josenivaldo Benito — 13 março 2009 @ 10:25 pm

  3. Opa, bem observado! Obrigado pela correção.

    Abraços.

    Comentário por Juan Basso — 14 março 2009 @ 6:41 pm

  4. Gostaria de saber como faço para validar campos cpf de forma simples, sem precisar copiar 500 arquivos para o projeto, depois sair adicionando variaveis ao longo do projeto para ver ele funcionando.
    Poderia informar algo simples para resolver?

    Meu e-mail Yahoo: maurothiagobr@yahoo.com.br
    Meu e-mail Gmail: maurothiago@gmail.com

    Creio que já nos falamos em outros posts, até no forum do Cake no google.
    Bom, desde já obrigado pela força!

    Comentário por Thiago — 10 abril 2009 @ 2:31 pm

  5. Thiago,

    Você pode criar uma regra especial de validação no seu model, você pode dar uma olhada na documentação do Cake: http://book.cakephp.org/pt/view/150/Regras-de-Valida%C3%A7%C3%A3o-Customizadas

    Eu criei um plugin que contém a validação de CPF, CNPJ, Telefone e CEP como um behavior. Ainda não tem muita documentação, mas se quiser tentar utilizar, o código está em http://github.com/jrbasso/cake_ptbr/tree/master.

    Qualquer sugestão é bem vinda. Abraços.

    Comentário por Juan Basso — 12 abril 2009 @ 10:45 pm

  6. Olá Juan,
    gostaria de saber como faço para declara um behavior dentro do model ou controller para funcionar a validação. Agradeço pela ajuda!

    Comentário por Thiago — 13 abril 2009 @ 9:43 am

Feed RSS dos comentários deste post URL de TrackBack

Deixe um comentário

Powered by WordPress