Как приложение Yii2 может отображать Controller (не контроллер модуля) представление, предоставляемое модулем, при условии, что модуль следует структуре каталогов, описанной в документация?
Yii2: вид модуля рендеринга из основного приложения
Ответы (1)
Как указано в методе render() вы можете указать представление как:
- псевдоним пути (например, "@app/views/site/index"); абсолютный путь в приложении (например, "//site/index"): имя представления начинается с двойной косой черты. Фактический файл просмотра будет искаться по пути просмотра приложения.
- абсолютный путь внутри модуля (например, "/site/index"): имя представления начинается с одной косой черты. Фактический файл представления будет искаться по пути представления $module.
- относительный путь (например, «индекс»): фактический файл представления будет искаться в $viewPath.
Итак, в случае модуля, упомянутого вами, сделайте это в действии:
return $this->render('@app/modules/forum/views/default/index');
Это отобразит представление с примененным макетом основного приложения. Чтобы использовать макет модуля, добавьте это также в действие:
$this->layout = '@app/modules/forum/views/layouts/main';
Это предполагает вид default/index
и макет main
в модуле forum
.
person
Bizley
schedule
03.09.2016
Я хотел бы добавить один важный и невероятно полезный факт: расширения yii2, установленные через композитор, автоматически получают свой собственный псевдоним
@vendorname/extensionname
.
- person mae; 04.09.2016