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

Responder a