Ir para conteúdo

POWERED BY:

Arquivado

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

gust.php

Chamar uma outra Action dentro de uma Action. Tem como ?

Recommended Posts

Fala galera, beleza ... To precisado de uma ajuda ...


O seguinte, estou em um controller, dentro de uma action, no final dela estou tentando devolvar a $view com outra Action, assim:


Isso aqui esta dentro da Action editar.

$view->$this->getRequest()->getgestaoAction();


gestaoAction(), é uma Action que ja existe e funciona.


To recebendo o erro abaixo:


Catchable fatal error: Object of class Application\Controller\ServicoController could not be converted to string in /var/www/html/SGT/module/Application/src/Application/Controller/ServicoController.php on line 201



Estou usando o Zend2. Tem como eu chamar uma Action dentro de ourta?


Obrigado;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes de dizer que você não deve fazer isso, me diga o porquê você quer fazê-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A rota é a mesma para as 2 Actions. Na Action gestao, eu mostro todos os registros do dia, quando edito um registro e modifico ele, quero no final, voltar para a mesma página, no caso, a action que chama a página gestao. Reutilizar código.

Como você falou que não é o recomendado, criei um função e chamo a mesma nas 2 Actions, ficou mais fácil.

Curiosidade. Porque não devo fazê-lo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde me lembro do Zend, uma action é referente a uma rota pelo controller. Sendo assim, uma action não deve conhecer outras, apenas saber quando ela está sendo chamada e o que executar.

Basicamente, em uma arquitetura MVC, uma view chama uma rota. A action reconhece essa rota como dela ou algum dispatcher diz para qual action deve ser enviada a requisição.

Chamar duas actions implica em possuir duas rotas ou muitas responsabilidades em um controller. Dessa forma, a sua regra de negócio está no lugar errado (pois, então, seria responsabilidade do Model) ou você poderia estar fazendo um redirecionamento.

Sendo o MVC uma arquitetura para voltada para a View, um Controller deve estar ligado a uma view. A chamada de dois controllers, resulta, também, em uma chamada de duas views.

A não ser que, depois de alguns anos sem trabalhar com Zend, eles tenham mudado, essa é a teoria geral do MVC aplicada no Zend.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Gabriel,

Continua assim mesmo, perfeito. Só que como eu to dentro da mesma rota, onde nesta rota eu tenho varios Actions, eu pensei em chamar uma Action em outra Action.

Fiz diferente, usei um setTemplate e chamei a view da Acttion que eu queria passando os dados para ela.

Deu certo.

Obrigado.

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.