Conforme as dicas nesta lista, eu não estou mais precisando do calback.
Eu extendi a Validation para MY_Validation e nela crio meus próprios
métodos.
Usando o último exemplo que postei na lista e graças a ajuda do Henrique
consegui rodar, onde eu precisava testar se o email não estava
cadastrado, ficou assim:
No model:
Construtor:
$this->load->library( array('validation') );
No método
(...)
$regras['userEmail'] =
"trim|required|valid_email|max_length[100]|unique_email[$this->userEmail]";
No MY_Validation:
(...)
$this->CI->load->database();
$this->CI->db->from('user');
$this->CI->db->where('userEmail', $this->mail);
$query = $this->CI->db->get();
$found = $query->num_rows();
if( $found > 0 ) {
$this->set_message('unique_email', "O email [$this->mail] já
se encontra cadastrado.");
return false;
}else {
return true;
}
E dessa forma fica mais fácil e tenho mais controle do que o calback.
(Digo, para mim, para outros pode/deve ter opção melhor :-) )
Muita sorte para nós!
Marco Telles
#############
# Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
# Pier de Ipanema no Orkut ( http://www.orkut.com/Community.aspx?cmm=2923344 )
# CodeIgniter PHP framework ( http://www.codeigniter.com.br/ )
# Ubuntu The power of free software ( http://www.ubuntu-br.org/ )
# Python Programming Language ( http://www.pythonbrasil.com.br/ )
Diego Albuquerque escreveu:
> Bem, não sei se vou falar besteira , mas é que enfrentei um problema
> com funções de callback mas no Rapyd e de repende pode se estender a
> isso que você tá passando.
>
> A questão é que, não sei por que, a função deve ter nome minusculo
> apenas. Criei uma função tipo callbackValida e dava pau e não sabia
> porque. Quando coloquei tudo em minúscula funcionou. Vai entender.
>
> Se falei besteira , desconsiderem ok ?
>
> Agora por curiosidade, de quem nunca trabalhou usando MODEL, como
> seria esta validação com funções callback, dentro do MODEL ?!
>
> Valeu
>
>
> 2008/1/30 Paulo Balzi <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>:
>
> Marcos,
> funcionou sim. é só criar a função, recebendo um parametro, que
> seria o campo do form, e fazer as validações.
> na dúvida, olha como foi feito os códigos na própria library
> validation do CI e faz igual na sua.
>
> Falouuu
>
> 2008/1/30 Marco Telles <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>:
>
> Legal então ! E o callback funcionou também ?
> Vou fazer isso... :-)
>
> Muita sorte para nós!
>
> Marco Telles
>
> #############
> # Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
>
>
>
> Paulo Balzi escreveu:
> > Marcos, eu usei a opção do CI de estender a library Validation.
> > Criei a My_Validation, e nela eu criei as minhas validações.
> > Funcionou e foi bem tranquilo, e o código ficou bem organizado.
> >
> > Valeu
> >
> >
> > 2008/1/29 Marco Telles <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>>:
> >
> > Assim:
> >
> > 1) No controller eu faço assim:
> > if ( $this->Prodmod->validaProd() ) { validou, então
> continuo o
> > processamento, do contrário retorno
> >
> > 2) No model eu faço as validações básicas do validation
> - ex:
> > trim|required|max_length[10] (...)
> >
> > if ( $this->validation->run() == FALSE ) {
> > // não passou na validação retorno
> > return FALSE;
> > }else {
> > // faço as minhas validações
> > if ( $this->referCheck() ) { minha primeira
> validação, se
> > passou vamos para a segunda
> > If ( $this->prodExiste() ) { minha
> segunda validação,
> > se passou vamos para a terceira
> > if (...) { e assim por diante
> > // se passou por tudo, então
> validou (obviamente
> > se todas forem obrigatórias)
> > return TRUE;
> > }
> >
> > Ficou confuso ??? :-)
> > abs
> >
> > Muita sorte para nós!
> >
> > Marco Telles
> >
> > #############
> > # Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
> > # CodeIgniter PHP framework (
> http://www.codeigniter.com.br/ )
> > # Ubuntu The power of free software (
> http://www.ubuntu-br.org/ )
> > # Python Programming Language (
> http://www.pythonbrasil.com.br/ )
> >
> >
> >
> > Paulo Balzi escreveu:
> > > pois é, um mistério isso.
> > > Quando usava no controller tudo funcionava, agora no model
> > acontece isso.
> > > Espero que eu que tenha errado, pq ficar sem callback
> complica
> > um pouco.
> > >
> > > Mas como vc faz as suas validações sem o uso do callback?
> > >
> > > 2008/1/29 Marco Telles <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
> > > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>>>>:
> > >
> > > Oi Paulo,
> > > Isso aconteceu comigo também e acabei largando mão do
> > callback. E não
> > > tinha reparado que foi depois que passei a
> validação para o
> > model...
> > > Achei que era algum erro meu. Então será que não é
> possível
> > usar o
> > > callback dentro do model ? Ou tem solução ??
> > >
> > > Abs
> > >
> > > Muita sorte para nós!
> > >
> > > Marco Telles
> > >
> > > #############
> > > # Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
> > >
> > >
> > > Paulo Balzi escreveu:
> > > > Pessoal, estou melhorando o meu código, e
> resolvi seguir um
> > > pouco mais
> > > > a risca a idéia do MVC.
> > > > Então, comecei a colocar a minha validação no
> Model. Quando eu
> > > utilizo
> > > > as validações padrões do CI, funciona direito,
> mas qdo
> > resolvi fazer
> > > > uma validação callback, simplesmente não
> acontece nada.
> > > > Quando usava tudo no controller funcionava,
> agora no model
> > não.
> > > >
> > > > Tem que fazer alguma coisa diferente que tem q
> fazer??? ou tem
> > > alguma
> > > > maneira de saber se tenta chamar a função do
> callback??
> > > >
> > > > já tentei de tudo......e não consegui descobrir.
> > > >
> > > > Valeu
> > > >
> > > > --
> > > > Paulo Balzi
> > > >
> > >
> >
>
> ------------------------------------------------------------------------
> > > >
> > > > _______________________________________________
> > > > Lista mailing list
> > > > [email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>
> > <mailto:[email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>>
> > > >
> >
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > >
> > >
> > > _______________________________________________
> > > Lista mailing list
> > > [email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>
> > <mailto:[email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>>
> > >
> >
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > >
> > >
> > >
> > >
> > > --
> > > Paulo Balzi
> > >
> >
>
> ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Lista mailing list
> > > [email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>
> > >
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > >
> >
> > _______________________________________________
> > Lista mailing list
> > [email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>
> >
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
> >
> >
> >
> > --
> > Paulo Balzi
> >
>
> ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Lista mailing list
> > [email protected] <mailto:[email protected]>
> >
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
>
> _______________________________________________
> Lista mailing list
> [email protected] <mailto:[email protected]>
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
>
>
> --
> Paulo Balzi
> _______________________________________________
> Lista mailing list
> [email protected] <mailto:[email protected]>
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista mailing list
> [email protected]
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br