Preciso antes de carregar o layout processar uma informação e passar para o mesmo em forma de variavel, assim como fazemos no controller em relação a view. Alguém sabe como fazer isso?
No Yii, todas as views são tratadas como parte do controller.
Logo, nas views vc pode usar o $this, que se refere ao seu controle e isso tb se aplica as views de layouts. O Yii não repassa as variáveis da view do controller pra view de layout (Aquelas variáveis que vc passa pro render) mas vc tem acesso ao controller atravez do $this, então vc, no layout pode perfeitamente fazer uma chamada
echo $this->minhaFuncao();
O problema disso é que nem todos os controlllers vão ter esta função, a não ser que vc coloque este método no Controller do protected e herde todos os outros controllers dele (da mesma forma que se usa breadcrumbs na aplicaçao gerada pelo Yiic).
Valeu pela resposta. Dando uma futucada no Yii percebi exatamente isso que voce mencionou. Então fiz a seguinte técnica para resolver meus problemas:
No Controller que fica dentro de components eu criei uma variavel publica e sobrescrevi o metodo __construct. Ficou assim para aqueles que quiserem entender:
<?php
/**
Controller is the customized base controller class.
All controller classes for this application should extend from this base class.
*/
class Controller extends CController
{
/**
* @var string the default layout for the controller view. Defaults to '//layouts/column1',
* meaning using a single column layout. See 'protected/views/layouts/column1.php'.
*/
public $layout='//layouts/column1';
/**
* @var array context menu items. This property will be assigned to {@link CMenu::items}.
*/
public $menu=array();
/**
* @var array the breadcrumbs of the current page. The value of this property will
* be assigned to {@link CBreadcrumbs::links}. Please refer to {@link CBreadcrumbs::links}
* for more details on how to specify this property.
*/
public $breadcrumbs=array();
[b]public $modelE = null;[/b]
public function __construct($id,$module=null)
{
parent::__construct($id,$module=null);
[b]$this->modelE = Util::buscarEdicaoAtiva();[/b]
}