Вывод на главную страницу информацияю с нескольких модулей

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
connor74
Сообщения: 19
Зарегистрирован: 2014.12.08, 20:24

Вывод на главную страницу информацияю с нескольких модулей

Сообщение connor74 »

Добрый вечер!

Недавно начал осваивать Yii2. Опыта с фреймворками не было ранее.
Суть проблемы:
на главную страницу (site/index) нужно вывести данные из разных моделей, т.е. какое то краткое статичное описание и 2 блока текстовых данных, например "Новости" и "Статьи" (контроллеры NewsController и ArticlesController, модели News и Articles соответственно).

Будет ли правильным сделать следующее:
Вывести данные News и Articles через SiteController или есть другой способ?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение zelenin »

модули не предоставляют никакой информации - это лишь способ логически структурировать близкий функционал.
вам же нужны, как сказал vitalik1183, виджеты.
connor74
Сообщения: 19
Зарегистрирован: 2014.12.08, 20:24

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение connor74 »

Спасибо! попробую капать в этом направлении
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение zelenin »

connor74 писал(а):попробую капать
не утоните
connor74
Сообщения: 19
Зарегистрирован: 2014.12.08, 20:24

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение connor74 »

Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение zelenin »

connor74 писал(а):Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
какая-то мешанина.
из контроллера не передают данные в виджет. это независимые друг от друга вещи.
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение Vespertilio »

connor74 писал(а):Тяжеловато доходит. Не могу понять как передать данные из контроллера в виджет?
Если с видом все понятно: actionIndex(SiteController) $this->render('index', [...]) -> views/post/index
то как быть в случае виджета?
Виджет по сути и есть сам себе контроллер, он встраивается во вьюху и там отрабатывает согласно своей логике, параметры в виджет передаются по схеме controller->view<->widget. Если, например, вам надо передать список категорий вы пишете в контроллере render('index', [.., 'categories'=>$categories']), соотвественно во вьюху index передается переменная $categories , ее скармливаете виджету, виджет на основании этой переменной отрисует нужный вам код в туже вьюху в тоже месте где он располагается
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение Demon_id »

в виджете делаются публичные свойтва. также массивом и назначаются.
читайте доки
http://www.yiiframework.com/doc-2.0/gui ... dgets.html
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение Demon_id »

zelenin писал(а):какая-то мешанина.
из контроллера не передают данные в виджет. это независимые друг от друга вещи.
спорное утверждение. можно передавать, а можно и в виджете тянуть.
к примеру в виджет меню вы же массив с данными передаёте. а виджет их только отображает.

а если виджет должен тянуть данные, то нужно виджету передать как минимум название модел(и, ей), откуда тянуть данные.
connor74
Сообщения: 19
Зарегистрирован: 2014.12.08, 20:24

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение connor74 »

Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение Demon_id »

connor74 писал(а):Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
получается.
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

Re: Вывод на главную страницу информацияю с нескольких модулей

Сообщение Vespertilio »

connor74 писал(а):Все таки получается что контроллер использует чужое представление, т.е.
PostController->views/site/index а внутри представления уже выводится созданый виджет с передачей ему данных?
Как это? Контроллер должен использовать свои вьюхи
Ответить