FS
Passar Parâmetro
Prezados,
Estou precisando colocar uma condição na função onSearch do meu formulário para quando o usuário for fazer uma buscar ele fazer uma comparação entre variáveis. Alguém já fez algo parecido.
Estou precisando colocar uma condição na função onSearch do meu formulário para quando o usuário for fazer uma buscar ele fazer uma comparação entre variáveis. Alguém já fez algo parecido.
Fernando. o onSearch trabalha basicamente com Session.
O que exatamente você precisa?
estou criando um formulário onde pego a passagem de um Session de login no meu caso eu pego um CPF e quero validar ele antes da busca
para que o usuário somente consiga buscar seu próprio cadastro, fiz alguns testes de segurança e ao inspecionar o código e apagar os dados do campo o usuário consegue buscar todos no banco.
Numa lista, vc poderia incluir esta verificação num TCriteria antes do "load", assim
Antes é preciso ter o campo CPf no cadastro do usuário e capturá-lo no login e
colocá-lo numa Session.
<:?php
public function onReload($param)
{
....
$criteria->add(new TFilter('cpf','=',$TSession::getValue('cpf')));
.....
}
?>
está é a linha em que eu quero passar o parametro.
$btn = $this->form->addAction(_t('Find'), new TAction([$this, 'onSearch']), 'fa:search');
Bem, se está na Session, vc deve alterar o método 'onReload'.
Veja que o método onSerach apenas monta todos os filtros necessários para a busca. Ao final ele chama
A busca de fato ocorre em 'onReload'.. No seu onReload deve ter a linha abaixo:
Então você deve adicionar seu filtro antes, assim:
Baseado na estratégia do onSerach, vc pode iniciar a lista, no __construct() com um pré-filtro e chamá-lo no onReload.
Vamos supor que a pessoa precisa ter acesso apenas ao seu registro numa lista, que me parece o seu caso, então vc pode criar um pré-filtro e ao carregar a lista, irá exibir apenas o registro ou registros dela. assim.
O primeiro que passei, basea-se no botão buscar, este aqui se aplica inclusive à lista inicial e qualquer busca que for feito.
Recomento usar este, se for o caso.....
Muito Obrigado deu certinho agora este ultimo código.