Ir para conteúdo

POWERED BY:

Arquivado

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

LeonanCarvalho

Zend_View Url em página com rotas

Recommended Posts

Estive pesquisando algumas páginas aqui sobre o assunto e nenhum delas solucionou o meu problema, por isso estou criando o tópico.

 

 

Fiz as rotas em um arquivo .ini :

routes.produto.route = "produto/:categoria/:sub-categoria/:produto"
routes.produto.defaults.module = default
routes.produto.defaults.controller =  produto
routes.produto.defaults.action = index
routes.produto.defaults.categoria =
routes.produto.defaults.sub-categoria =
routes.produto.defaults.produto =

 

E no Bootstrap principal(utilizo módulos)

protected function _initRouter()
   {
       $this->bootstrap('frontController');

       $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/rotas.ini', 'routes');

       $router = $this->getResource('frontController')
                   ->getRouter()
                   ->addConfig($config, 'routes');
       return $router;
   }

 

Quando vou usar um

$this->url(array('controller' => 'index', 'action' => 'index', 'module' => 'default'),null,true);

Por exemplo.

Ele me retorna: /produto

ao invés de /index

 

O mesmo acontece se eu utilizar qualquer outro controller na url.

 

Todas as urls do site ficam assim nessa página que é utilizada de rota produto.

 

Alguma sugestão do que pode estar pegando e como eu posso resolver?

Muito obrigado.

---edit---

O título não ajudou muito, gostaria de editálo para "Zend_view url não gera url corretamente em página que utiliza Rota"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modelo:

$this->url(array('controller' => 'index', 'action' => 'index', 'module' => 'default'),{NomeDaRota},true);

 

O que ele ta entendendo:

$this->url(array('controller' => 'index', 'action' => 'index', 'module' => 'default'),"routes",true);

 

Para você resolver você precisa adicionar uma rota padrão que deverá ser a "default" e depois quando você precisar usar essa rota customizada você define no $this->url();

 

Lembrando:

 

$this->url({parametros},{rota},{requestClean|Boolean});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei exatamente nisso, então tentei fazer da seguinte forma:

Criei 2 rotas, uma para acessar links do modulo default que é o módulo raiz.

 

(http://localhost/index ao invez de http://localhost/default/index)

 

;Rotas para o módulo default
routes.padrao.route = ":controller/:action"
routes.padrao.defaults.module = default
routes.padrao.defaults.controller = 
routes.padrao.defaults.action = 

E um para os outros módulos:

;Rotas para os outros módulos
routes.static.route = ":module/:controller/:action"
routes.static.defaults.module = 
routes.static.defaults.controller = 
routes.static.defaults.action = 

 

Porém não obtive sucesso, eu não consigo acessar por exemplo http://localhost/index/teste

controller: index

action: teste

 

Diz que o controller teste não existe.

 

Ele me diz que a action contato não existe, e sem as rotas acessa normalmente.

 

Caso eu acesse: http://localhost/index/index/teste ele acessa a action teste da controladora index.

 

Já os dados do módulo static ele acessa normalmente.

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.