Nilson, funcionou perfeitamente.<br><br>Muito obrigado.<br><br clear="all">Jorge Augusto Senger<br>jasenger (at) <a href="http://gmail.com">gmail.com</a><br><br>use Perl;<br>
<br><br><div class="gmail_quote">2009/4/23 Nilson Santos Figueiredo Jr. <span dir="ltr"><<a href="mailto:acid06@gmail.com">acid06@gmail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2009/4/22 Jorge Augusto Senger <<a href="mailto:jasenger@gmail.com">jasenger@gmail.com</a>>:<br>
<div class="im">> No mesmo Controller que processa o formulário (<a href="http://auth.pm" target="_blank">auth.pm</a>) criei um método para<br>
> ser usado pelo callback (verificaLogin).<br>
> Minha idéia para este método é conectar ao banco e verificar se existe<br>
> usuário cadastrado com o login informado no formulário. Gostaria de saber se<br>
> é possível este método acessar o objeto de contexto da aplicação para<br>
> realizar a busca no banco.<br>
> Pelo que li na documentação do HTML::FormFu, o callback chama uma subrotina<br>
> e não um método, seria esse meu problema?<br>
<br>
</div>Eu não sei muito sobre o HTML::FormFu, apesar de já tê-lo utilizá-lo.<br>
Pra ser sincero, isso nem é um bom conselho, mas eu normalmente me<br>
sinto "desconfortável" usando essas bibliotecas que auxiliam na<br>
validação de formulários (mas, de fato, é muito mais fácil manter<br>
código dos outros que foi escrita utilizando-as, por isso é uma boa<br>
prática utilizá-las).<br>
<br>
Enfim, uma maneira de fazer isso seria, ao invés de especificar a<br>
callback no arquivo de configuração, adicionar a constraint ao<br>
formulário depois.<br>
<br>
Lá no seu controller, aonde a validação vai ocorrer, faça algo assim:<br>
<br>
sub my_action : Local FormConfig {<br>
my ( $self, $c ) = @_;<br>
my $form = $c->form;<br>
my $field = $form->get_field( { name => 'login' } );<br>
$field->constraint( {<br>
type => 'Callback',<br>
callback => sub {<br>
$c->forward( '/auth/verifica_login', [ @_ ] );<br>
}<br>
});<br>
$form->process;<br>
<br>
# seu código continua aqui<br>
<br>
}<br>
<br>
Talvez exista uma solução melhor... mas eu sinceramente não sei.<br>
Apesar de não ter testado, esta solução deve funcionar pro seu caso<br>
(excluindo algum erro de compilação).<br>
<br>
-Nilson Santos F. Jr.<br>
_______________________________________________<br>
Cascavel-pm mailing list<br>
<a href="mailto:Cascavel-pm@pm.org">Cascavel-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/cascavel-pm" target="_blank">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br>
</blockquote></div><br>