Ответ 1
Я верю в это действие, вы можете просто вызвать переменную $layout
.
public function actionYourAction()
{
$this->layout = 'nameOfYourAltLayout';
}
Инструкции в приведенной ниже ссылке указывают, что вам нужно будет установить эту переменную для каждого действия, так как вы не можете просто установить общедоступную переменную по умолчанию и ожидать, что другие действия по умолчанию вернутся к этому.
http://www.yiiframework.com/wiki/28/how-to-implement-multiple-page-layouts-in-an-application/
:: Edit::
Кажется, наилучшей практикой здесь является определение переменной $layout
в представлении script для конкретного действия, которое его вызывает. Например, если ваше действие вызывает viewscriptone.php
, то файл viewcriptone будет содержать:
$this->layout = 'nameOfYourAltLayout';
Здесь больше смысла переопределять, а не в действии контроллера. Однако, как сказал LDG, если компоновка условна, вы, вероятно, должны держать ее в контроллере. Эта информация все еще может быть найдена в ссылке выше в разделе "Использование макетов" на странице.