Отчасти это зависит от того, насколько разными будут заголовки с точки зрения вашего подхода. Если вы хотите, чтобы они были полностью разделены, вы можете использовать дополнительные файлы макетов в сочетании с main.php или вместо него.
Вы устанавливаете файл макета в начале класса контроллера следующим образом:
public $layout='//layouts/column2';
Это установит макет по умолчанию для контроллера. Вы можете изменить значение в функции действия или оценить условие в функции beforeAction.
Сгенерированные по умолчанию страницы администратора (с «gii» или командной строкой) используют эти макеты column1.php и column2.php с main.php и предоставляют хороший пример того, как они работают. Просто переместите контент из main.php, который вы хотите настроить, и поместите его в отдельные файлы макета. Если вы все еще делитесь контентом, вы можете оставить общий контент в main.php.
Если это просто вопрос изменения нескольких атрибутов, вы можете использовать $this->getAction()->getId()
, чтобы получить имя действия, и использовать его для изменения содержимого, загружаемого в макет, например, определенного файла CSS или JS. Любая сложная логика, которую вы хотели бы сделать в контроллере.
Для чего-то вроде навигационной панели или чего-либо подобного, вы также можете использовать include
или renderPartial
base для переменной среды, которую вы установили в контроллере.