Yii изучаю недавно
так что сильно не пинайте:)
есть два вопроса
1. Есть общий макет (лежит в /proteceted/views/layouts/main.php)
Когда я создал модуль с именем ту скажем mName, то макет в модуле выводится из (/proteceted/mName/views/layouts/main.php)
Как сделать так, чтобы макет модуля выводился все тот же /proteceted/views/layouts/main.php
2. в модуле mName бросаю исключение.
оно выводится в макете /proteceted/views/layouts/main.php
можно ли как-то выводить все исключения, которые происходят в модуле mName в макете /proteceted/mName/views/layouts/main.php
вижу только один путь:
подмену действия из того же контроллера (например: mName/default/error) через CErrorHandler::errorAction. Но как если она публична (не статична)
Заранее благодарен за помощь
Исключения в модулях, макеты в модулях
Re: Исключения в модулях, макеты в модулях
про макеты разобрался
решило проблему
но с одной оговоркой
в class Controller extends CController
комментируем значение layout
---
Проблема с исключениямиосталась
Код: Выделить всё
'modules' => array(
'realtor'=>array(
'layout'=> 'application.views.layouts.main',
),
но с одной оговоркой
в class Controller extends CController
комментируем значение layout
Код: Выделить всё
public $layout='main';
Проблема с исключениямиосталась
Re: Исключения в модулях, макеты в модулях
проблему решил следующим орбазом
переписал действие
возможно есть лучше решение
переписал действие
Код: Выделить всё
public function actionError()
{
if ($error = Yii::app()->errorHandler->error) {
if (Yii::app()->request->isAjaxRequest)
echo $error['message'];
else {
if (strpos($error['file'], 'protected\modules\mName\controllers') > 0) {
$this->layout = 'application.modules.mName.views.layouts.main';
}
$this->render('error', $error);
}
}
}