Enviar Dados Do Filter Para Action

Olá pessoal,

Estou migrando um site de java para PHP com Yii. Eu tenho inúmeros filters que carregam coisas que são comuns no meu site (é um site, não um sistema). Para que a action possa ser carregada, eu preciso buscar coisas no banco (ou cache) antes da action ocorrer, para isso eu tenho filtros, porém, uma vez tendo esse dado carregado, como eu posso manda-lo para a action para que a mesma possa usar ??

Desde já agradeço…

Rodrigo Bonjour, de que forma estás fazendo atualmente?

Podes armazenar os valores em uma variável do controller para que assim, possas utilizá-los em suas actions.

Acho que entendi o que vc quer fazer, acredito que a melhor forma seria setar uma variável global no modelo e definir o valor dela com um behavior.

segue um exemplo:

no modelo




class MyModel extends CActiveRecord

{

    var $variavelb;

    ...

    //neste behavior a variavel vai ser filtrada todas as vezes que a variavel for consultada do banco

    public function afterFind(){

         //levando em consideração q variavela eh um campo na base de dados

         $this->variavelb = $this->myfilter($this->variavela);

    }

    function myfilter($variavel){

       return $variavel + 1;

    }


}



no controlador




class SiteController extends Controller {

     public function actionIndex() {

           $model = MyModel::model()->findAll();

           $this->render('index', $model);

     }

}



e finalmente o view




<?php 

   foreach ($model as $rows) { 

        echo $rows->variavelb;

   }

?>



Desta forma, cada vez que um registro for lido a variável será transformada e jogada para uma nova variável e vc pode ler ela como um novo campo com maior praticidade.

Espero ter ajudado