Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Augusto

[Resolvido] Construção de URL's...

Recommended Posts

Cacetada, como funciona a construção de URL's no ZF?

 

Para links eu mais ou menos entendi, é só colocar /controler_que_sera_aberto,mas e para actions de formulário.

 

Por que se estou em, por exemplo, /empresas/cadastro, sendo empresas o controller e cadastro, o action e o action do formulário é é /adicionar, do mesmo controller, se eu enviar e ocorrer algum erro já será redirecionado para /adicionar e, qualquer nova tentativa dará erro, pois haverá duplicidade de /adicionar no atributo da tag <form>

 

Deu pra entender mais ou menos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só estou ressucitando o tópico para solucioná-lo para quem mais precisar.

 

Existe um método em Zend_Controller_Front que faz isso. É o assemble(), que deve se usado em cadeia com getRouter():

 

Zend_Controller_Front::getInstance()
    ->getRouter()->assemble(
        $urlParams,
        $name,
        $reset,
        $encode );

Explicando...

 

Até o assemble() estamos apenas "chegando" até o método.

 

$urlParams é um array onde o primeiro índice é o módulo, o segundo o controller e o terceiro a action.

$name é o nome do Roteador (Route). Não cheguei a me aprofundar nessa parte então fico devendo uma resposta (a menos que alguém saiba e queira responder)

$reset indica que todos os os valores de URL devem ser resetados, ignorando os valores passados. Não entendi bem a utilidade, pois pelo queu para entender pelo comentário da Interface (Zend/Controller/Router/Interface.php), irá ignorar o que você informar em $urlParams.

$encode codifica a saída. Como não fala com o que é codificado, fui atrás do método assemble() confirmar. Codifica com urlencode()

 

Existe até um plugin para Smarty que faz isso através de tags de template.

 

Espero que ajude alguém assim como me ajudou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.