Глобальные actions

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Закрыто
mitrich
Сообщения: 53
Зарегистрирован: 2012.09.03, 20:57

Глобальные actions

Сообщение mitrich »

Привет всем.

Ситуация. Имеем контроллер Controller от которого наследуются все контроллеры системы. В нем цепляем action, который должен быть доступен во всех контроллерах системы:

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

public function actions()
{
    return array(            
        'create_proposal'=>'application.controllers.actions.CreateProposalAction',
   );
}
В системе работают как обычные контроллеры приложения (из папки application/controllers/), так и контроллеры модулей (modules/modulename/controllers/).

Вопрос. Куда ложить вьюху для этого action? Полагаю что положить можно куда угодно, тогда как правильно заставить yii искать вьюху там куда я ее положил? Ведь переопределить getViewPath для контроллера я не могу, потому как это приведет к тому что рядовые контроллеры полезут искать вьюху по новому пути.

Заранее благодарен.
neverwinter
Сообщения: 146
Зарегистрирован: 2014.03.20, 08:45

Re: Глобальные actions

Сообщение neverwinter »

Ведь переопределить getViewPath для контроллера я не могу, потому как это приведет к тому что рядовые контроллеры полезут искать вьюху по новому пути.
Но можно добавить проверку

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

if ($this->action->id === 'create_proposal')
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Глобальные actions

Сообщение ElisDN »

Указывайте путь от корневой views:

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

$this->owner->render('//common/proposal/create', array(...));
mitrich
Сообщения: 53
Зарегистрирован: 2012.09.03, 20:57

Re: Глобальные actions

Сообщение mitrich »

Спасибо, о корневом view не подумал.
Закрыто