Mougrim
(Rinat)
March 24, 2010, 8:38am
1
Код акшина:
class NewAction extends CAction
{
public $qwe = 'qwe';
public function run()
{
// Рендер
}
}
Прописано в контроллере.
public function actions()
{
return array(
'new_action'=>'console.controllers.actions.NewAction',
);
}
Теперь в шаблоне делаю:
var_dump($this->action);
Отображает NULL.
Подскажите, как еще можно получить доступ к объекту CAction из шаблона?
andy_s
(Arekandrei)
March 24, 2010, 10:08am
2
Я конечно не уверен, но первое, что приходит в голову - использовать просто $this. Или $this возвращает контроллер?
Mougrim
(Rinat)
March 24, 2010, 11:19am
3
В шаблоне $this является контроллером.
andy_s
(Arekandrei)
March 24, 2010, 12:40pm
4
Попробовал сделать так, как у вас написано, и $this->action возвратил объект NewAction. Метод run() у меня выглядит так:
public function run()
{
$this->controller->render('test_view');
}
Mougrim
(Rinat)
March 24, 2010, 1:14pm
5
Понял, это мой косяк оказался, я написал класс - расширение класса CController, и сделал там возможность автоматического рендеринга. Автоматический рендер происходил после того, как объект CAction уничтожался.
Извиняюсь за то, что ввел в заблуждение. Спасибо, andy_s.