Override No Controlador/acção

Boas a todos,

Sou um newbie no Yii e estou agora a utilizar o Yii para criar uma refreshless app.

Tenho uma dúvida que não consigo descobrir a solução.

Tenho um Controller.php que extende o CController. Neste controlador tenho um método filters que consegue interromper o fluxo do pedido antes de chegar ao siteController.

Existe alguma maneira de redireccionar o pedido para outro controlador / acção sem perder o âmbito das propriedades e dos métodos deste controlador ?

Sei que o runController(’<controller/action>’) permite executar outro request mas eu perco o âmbito do controlador onde estou.

Obrigado

Há inúmeras formas de fazer isso. Você pode criar um componente ou widget.

Você pode usar o import diretamente em outro controller: Ex:


class TesteController extends Controller

{

        public function actionIndex()

        {       

             Yii::import('application.controllers.PedidosController');

             $objeto = new PedidosController(); 

             echo $objeto->criarPedido(); 

        }


}



O Yii também dá suporte a eventos, você pode chamar o evento e o método é chamado automaticamente.

Eventos