Вывод на главную страницу информацияю с нескольких модулей
Вывод на главную страницу информацияю с нескольких модулей
Добрый вечер!
Недавно начал осваивать Yii2. Опыта с фреймворками не было ранее.
Суть проблемы:
на главную страницу (site/index) нужно вывести данные из разных моделей, т.е. какое то краткое статичное описание и 2 блока текстовых данных, например "Новости" и "Статьи" (контроллеры NewsController и ArticlesController, модели News и Articles соответственно).
Будет ли правильным сделать следующее:
Вывести данные News и Articles через SiteController или есть другой способ?
Недавно начал осваивать Yii2. Опыта с фреймворками не было ранее.
Суть проблемы:
на главную страницу (site/index) нужно вывести данные из разных моделей, т.е. какое то краткое статичное описание и 2 блока текстовых данных, например "Новости" и "Статьи" (контроллеры NewsController и ArticlesController, модели News и Articles соответственно).
Будет ли правильным сделать следующее:
Вывести данные News и Articles через SiteController или есть другой способ?
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Вывод на главную страницу информацияю с нескольких модулей
модули не предоставляют никакой информации - это лишь способ логически структурировать близкий функционал.
вам же нужны, как сказал vitalik1183, виджеты.
вам же нужны, как сказал vitalik1183, виджеты.
Re: Вывод на главную страницу информацияю с нескольких модулей
Спасибо! попробую капать в этом направлении
Re: Вывод на главную страницу информацияю с нескольких модулей
не утонитеconnor74 писал(а):попробую капать
Re: Вывод на главную страницу информацияю с нескольких модулей
Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
Re: Вывод на главную страницу информацияю с нескольких модулей
какая-то мешанина.connor74 писал(а):Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
из контроллера не передают данные в виджет. это независимые друг от друга вещи.
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Вывод на главную страницу информацияю с нескольких модулей
Виджет по сути и есть сам себе контроллер, он встраивается во вьюху и там отрабатывает согласно своей логике, параметры в виджет передаются по схеме controller->view<->widget. Если, например, вам надо передать список категорий вы пишете в контроллере render('index', [.., 'categories'=>$categories']), соотвественно во вьюху index передается переменная $categories , ее скармливаете виджету, виджет на основании этой переменной отрисует нужный вам код в туже вьюху в тоже месте где он располагаетсяconnor74 писал(а):Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
Re: Вывод на главную страницу информацияю с нескольких модулей
в виджете делаются публичные свойтва. также массивом и назначаются.
читайте доки
http://www.yiiframework.com/doc-2.0/gui ... dgets.html
читайте доки
http://www.yiiframework.com/doc-2.0/gui ... dgets.html
Re: Вывод на главную страницу информацияю с нескольких модулей
спорное утверждение. можно передавать, а можно и в виджете тянуть.zelenin писал(а):какая-то мешанина.
из контроллера не передают данные в виджет. это независимые друг от друга вещи.
к примеру в виджет меню вы же массив с данными передаёте. а виджет их только отображает.
а если виджет должен тянуть данные, то нужно виджету передать как минимум название модел(и, ей), откуда тянуть данные.
Re: Вывод на главную страницу информацияю с нескольких модулей
Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
Re: Вывод на главную страницу информацияю с нескольких модулей
получается.connor74 писал(а):Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Вывод на главную страницу информацияю с нескольких модулей
Как это? Контроллер должен использовать свои вьюхиconnor74 писал(а):Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?