Usar método de Outro Controller

Zend_Controller, Zend_Controller_Action, Zend_Controller_Dispatcher, Zend_Controller_Plugin, Zend_Controller_RewriteRouter, Zend_View, Zend_Http_Request, Zend_Http_Response

Moderador: chackal_sjc

Usar método de Outro Controller

Mensagempor douglasmiranda » Qua Out 07, 2009 12:56 pm

Não se isso se chama compartilhar controllers ou se é só algum jeito de instanciar um controller dentro de outro, mas há algum jeito de chamar um método de NotociaController dentro de IndexController, por exemplo?
Avatar de usuário
douglasmiranda
Membro
 
Mensagens: 18
Data de registro: Dom Jul 12, 2009 6:02 pm

Re: Usar método de Outro Controller

Mensagempor Froskie » Qua Out 07, 2009 2:49 pm

Se necessário for, crie um helper para o controller. Mas usar métodos de outros controles não é uma prática recomendada dentro do padrão MVC, visto que o controle apenas gerencia o trâmite de request, dados indo/vindo do model e info para a view. Se você tem funções repetidas, crie helpers, se são regras de negócio, crie plugin.
Avatar de usuário
Froskie
Membro
 
Mensagens: 5
Data de registro: Seg Abr 27, 2009 3:25 pm

Re: Usar método de Outro Controller

Mensagempor danieldeveloper » Qua Out 07, 2009 8:06 pm

Concordo Froskie

abs
danieldeveloper.com
danieldeveloper
Participante
 
Mensagens: 48
Data de registro: Sex Mai 08, 2009 11:31 am

Re: Usar método de Outro Controller

Mensagempor rodrigosebold » Qua Out 07, 2009 11:37 pm

Douglas,

Acredito que você precisa do view helper action. Dentro da view de IndexController use:

Código: Selecionar tudo
<div class="news">
<?php echo $this->action('ultimas-noticias','noticia'); ?>
</div>


No exemplo acima você estaria chamando o método ultimasNoticiasAction dentro de NoticiasController. Para executar o método de dentro de IndexController seria assim:

Código: Selecionar tudo
<?php

class IndexController extends Zend_Controller_Action
{

    public function indexAction()
    {
        $buffer = $this->view->action('ultimas-noticias','noticia');
    }

}


A utilização é action($action, $controller, $module = null, array $params = array()). Você pode encontrar mais informações no manual aqui http://framework.zend.com/manual/en/zen ... lpers.html no tópico Action View Helper. :)
rodrigosebold
Leitor
 
Mensagens: 4
Data de registro: Qui Set 10, 2009 10:54 am
Localização: Jaraguá do Sul

Re: Usar método de Outro Controller

Mensagempor douglasmiranda » Sáb Out 10, 2009 12:13 pm

Opa mto obrigado, vou tentar ^^
Avatar de usuário
douglasmiranda
Membro
 
Mensagens: 18
Data de registro: Dom Jul 12, 2009 6:02 pm

Re: Usar método de Outro Controller

Mensagempor TulioBraga » Sex Out 23, 2009 11:14 pm

Avatar de usuário
TulioBraga
Participante
 
Mensagens: 52
Data de registro: Sex Mar 06, 2009 12:00 am
Localização: Belo Horizonte


Retornar para Model-View-Controller (MVC)

Quem está online

Usuários vendo este fórum: Yahoo [Bot] e 1 visitante