Validação

2 views
Skip to first unread message

AlphaX

unread,
Jul 24, 2008, 12:56:50 PM7/24/08
to symfony-pt
Olá pessoal...
Estou com uns probleminhas com a validação...

Criei uma função do arquivo action do modulo com o nome
validateAbrir()

Ate aí ta funcionando blz, so que coloquei uma outra função para caso
retorne erro handleErrorAbrir()

dentro dessa função se eu colocar um $this->redirect() quando abrir a
pagina não vai listar os erros...

aí tentei colocar $this->forward('nomedomodulo', 'abrir');

Só que a pagina não abre caso não tenha um parametro instalacao no
link, exemplo:
nomedomodulo/abrir/instalacao/1000

Então estou com essa dúvida... como faço para quando a função
handleErrorAbrir() for executada alem de abrir a pagina o sistema
envie o parametro instalacao + o id?


Pelo $this->forward() é possivel?


Aguardo respostas...

Lucas Peres da Silva

unread,
Jul 24, 2008, 1:19:26 PM7/24/08
to symfo...@googlegroups.com
Você pode fazer o seguinte:

$fp = fopen(sdfConfig::get('sf_upload_dir').DIRECTORY_SEPARATOR.'parametros.txt', 'w');
try {
fwrite($fp, $object->getId());
} catch(Exception $e) {
throw sfException('error');
}
fclose($fp);


Após o forward:

$fp = fopen(sdfConfig::get('sf_upload_dir').DIRECTORY_SEPARATOR.'parametros.txt', 'r');
try {
$buffer = fgets($handle, 4096);
} catch(Exception $e) {
throw sfException('error');
}

$myId = $buffer;

fclose($fp);


PS: Note o  R no ultimo fopen, dessa forma o tipo de acesso vai ser read-only ;).


Lucas




2008/7/24 AlphaX <guil...@brisanet.com.br>:

Pedro Casado

unread,
Jul 24, 2008, 1:47:42 PM7/24/08
to symfo...@googlegroups.com
Po, acho que você pode usar isso aqui na action do abrir:

$this->getUser()->setAttribute("instalacao" , $this->getRequestParameter("instalacao"));

Assim você vai ter ele na sessão..
Lembra de zerar isso em algum lugar por segurança..
--
Att,
Pedro Casado

2008/7/24 Lucas Peres da Silva <mys...@gmail.com>:

Pedro Casado

unread,
Jul 24, 2008, 1:48:34 PM7/24/08
to symfo...@googlegroups.com
Ah, para pegar o parâmetro é só fazer: $this->getUser()->getAttribute("instalacao");

2008/7/24 Pedro Casado <pdr...@gmail.com>:



--
Att,
Pedro Casado

Luã de Souza

unread,
Jul 24, 2008, 3:55:20 PM7/24/08
to symfo...@googlegroups.com
Meu deus, quanta gambi... Essa do Lucas me surpreendeu, acho que nunca iria imaginar salvar uma query string em um arquivo pra depois recuperar ela o_O

Quanto à duvida, tenta isso:

$this->getRequest()->setParameter('instalacao', $this->getRequestParameter('id'));
$this->forward('module', 'abrir');
--
Luã de Souza
Desenvolvedor Web

Bruno Reis

unread,
Jul 25, 2008, 5:57:35 AM7/25/08
to symfo...@googlegroups.com
como é um forward, da pra por no próprio request

$this->getRequest()->getParamHolder()->set(...

só que se você já recebeu o valor e apenas deu um forward, ele já está no request!
Imprima (print_r) o param holder do request para ver o que você tem.

2008/7/24 Pedro Casado <pdr...@gmail.com>:

Lucas Peres da Silva

unread,
Jul 25, 2008, 1:03:14 PM7/25/08
to symfo...@googlegroups.com
$this->getRequest()->getParamerHolder()->set()
$this->setFlash()
$this->getUser()->setAttribute()
sfConfig::set('parameter','') // desde que exista no app.yml
Ou até mesmo com fopen.

Oq vale é a criatividade para solucionar os problemas ;).


Lucas


2008/7/25 Bruno Reis <bruno....@gmail.com>:

Luã de Souza

unread,
Jul 25, 2008, 1:47:52 PM7/25/08
to symfo...@googlegroups.com
Criatividade == POG ? hahahaha

Gravar argumentos de url num arquivo é um tanto quanto inusitado. Imagina uma página com muita visitação, o que ia ser de um pegando argumento do outro... :)

No caso dele não precisa guardar em nada, ele já tem os parametros na mão. Caso precisasse guardar mesmo, guardaria na sessão, ou no máximo um cookie.

[]'s

2008/7/25 Lucas Peres da Silva <mys...@gmail.com>

Bruno Reis

unread,
Jul 25, 2008, 4:06:38 PM7/25/08
to symfo...@googlegroups.com
Como é isso de um pegando o argumento do outro?
Tem como compartilhar valores entre threads?


2008/7/25 Luã de Souza <eumes...@gmail.com>:

Lucas Peres da Silva

unread,
Jul 25, 2008, 11:57:54 PM7/25/08
to symfo...@googlegroups.com
Pelo menos fopen FUNCIONA.


=D

Lucas

Lucas Peres da Silva

unread,
Jul 26, 2008, 12:00:26 AM7/26/08
to symfo...@googlegroups.com
Funcionabilidade ou não, existem varias maneiras de resolver um problema trivial. Uma delas é ler documentação, pesquisar, e caso nenhuma delas venha a calhar, o minimo é tentar usar a critividade.


Lucas
Reply all
Reply to author
Forward
0 new messages