Попытка скормить $layout в контроллере

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Попытка скормить $layout в контроллере

Сообщение Одиночка Айс »

Есть такой код:

Код: Выделить всё

    protected function getTemplate(){
        $page=page::model()->findByAttributes(array("aliasPage"=>"index"));
        $template=template::model()->findByAttributes(array("idTemplate"=>$page->idTemplate));
        $layout=$template->titleTemplate;
        return $layout;
    }
    
    public $layout=$this->getTemplate();
Если отвардампить присылаемую переменную, то все норм, получаем, к примеру, main.
Но вот public $layout категорически отказывается хавать ее, уже и со скобочками пытался передать, толку нет. Где же я ошибся? ((
P.S. Данный код - попытка сделать шаблонизатор, а ля MODx.
Ни любви, ни тоски, ни жалости...
Аватара пользователя
MetalGuardian
Сообщения: 208
Зарегистрирован: 2011.03.06, 02:42
Откуда: Киев

Re: Попытка скормить $layout в контроллере

Сообщение MetalGuardian »

нельзя так установить значение.

сделайте в beforeAction присвоение
Аватара пользователя
Одиночка Айс
Сообщения: 267
Зарегистрирован: 2010.02.05, 10:26
Откуда: Алма-Ата, Казахстан
Контактная информация:

Re: Попытка скормить $layout в контроллере

Сообщение Одиночка Айс »

Решено

Код: Выделить всё

    public function actionIndex(){
        $this->layout=$this->getTemplate();
        $this->render("index",array());
    }
 
Ни любви, ни тоски, ни жалости...
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Попытка скормить $layout в контроллере

Сообщение anton44eg »

Код: Выделить всё

public function beforeAction($action)
{
   $this->layout=$this->getTemplate();
    return parent::beforeAction($action);
} 
AlTiger
Сообщения: 199
Зарегистрирован: 2012.01.15, 18:37

Re: Попытка скормить $layout в контроллере

Сообщение AlTiger »

Код: Выделить всё

public function beforeAction($action)
{
        $page = page::model()->findByAttributes(array("aliasPage"=>"index"));
        $template = template::model()->findByAttributes(array("idTemplate"=>$page->idTemplate));
        $this->layout = $template->titleTemplate;

        return parent::beforeAction($action);
} 

Ответить