Stas
закинул ишью только
Stas
И что с провайдером? проверяли то, что хочется спросить, на 2.0.12?
а вспомнил, да вроде на 2.0.12 работает система если не откатились на днях обратно. А где там в чендж логе глянуть изменения по каунту в 2.0.12?
Alexander
ну, поискать count
Stas
ок
Alexander
релизнул дебаг
Alexander
можно апнуть, ошибка пропадёт
Stas
спс
Maxim
Всем привет! Может кто подтолкнуть к правильному решению? Хочу добавить возможность установки модулей в свою систему. Не совсем понятно как организовать использование модулей, которые расширяют базовый функционал системы, а не создают новый. Например, у меня есть базовый класс Page (id, name, title. body). Допустим, я хочу сделать модуль, который расширит функционал, добавив класс PageSeo (id, page_id, title, description). Как мне из модуля изменить функционал основного контроллера сайта, чтоб он передавал объект PageSeo в представление, которое рендерит ту или иную страницу? Или например, добавить в объект Page магический метод getSeo чтоб в представлении получать $page->seo->title? Немного сумбурно получилось, но, думаю, суть донёс.
Dmitriy
DI?
Maxim
DI?
возможно, но не совсем понятно, как это применить к моему примеру. то есть я должен создать PageInterface, сделать чтоб common\Page его имплементировал, а в модуле создать ещё один Page, который наследует common\Page и имплементирует PageInterface, и сделать $container->set для класса из модуля? походу, я не до конца понимаю принцип DI.
👻
Модуль подключается с админки довольно таки удобно
Maxim
Модуль подключается с админки довольно таки удобно
да мне бы принцип понять для начала
Niko
Вот это PUSH!!! Или я чего-то раньше не знал или рождаются новые фичи https://github.com/yiisoft/yii2/commit/744b87fabccda1076360515032cd1f27c3f097c4
Stas
правда когда он пригрядет наконец никто незнает:)
Maxim
Посмотри реализацию на easyii cms
глянул, но не увидел там ответа на свой вопрос. увидел только, что page сделан отдельным модулем, а seo реализуется через behavior. а мне бы понять, как в базовый view (не модуля) передать что-то из модуля (сео был для примера). либо DI, как посоветовал Dmitry Kuts (но я не до конца понимаю, как оно заводится, надо поизучать ещё), либо можно эвентами попробовать, но это, кмк, костыль.
Niko
"как в базовый view (не модуля) передать что-то из модуля" - хочешь передать параметр в layout???
Niko
или подтянуть модуль через какой-нибудь Yii::$app->myModule->doSomething???
Niko
или вообще не это?
Maxim
"как в базовый view (не модуля) передать что-то из модуля" - хочешь передать параметр в layout???
в SiteController будет метод actionPage который вызовет в итоге $this->render('page', [...]); вот я из модуля хочу добавить что-то в [...].
Niko
я не понял вопрос и пошел спать
Maxim
=D
Niko
ты бы конкретизировал, что это "что-то")))
Maxim
попробую ещё раз )
Maxim
есть common\Page - модель страницы есть модуль seo - дополняет страницу seo-полями есть базовый контроллер сайта (SiteController), который по адресу найдёт id страницы, и передаст экземпляр Page в $this->render('template_name', ['page' => $page]). модуль seo хранит в таблице данные, которые я хочу тоже передать в render. как мне это сделать из модуля?
Niko
передай через тот же массив $this->render('template_name', ['page' => $page, 'seo' => $seo])
Maxim
можно на каждой странице вызывать Yii::$app->seo->getByPageId($page->id), но это как-то некрасиво, вот и ищу метод покрасивее )
Niko
Я не понимаю зачем тебе там нужен модуль Если ты хотел один кусок html тягать по разным view - тебе или виджет или блок нужен
Maxim
я хочу во view работать с данными из модуля seo
Niko
сделай связь и тяни вот так $page->seo
Maxim
связь надо прописывать в базовом классе
Maxim
мне кажется DI - это то, что нужно, надо копать в его сторону
Niko
связь надо прописывать в базовом классе
да-да. Когда кодишь - что-то постоянно прописывать надо
Maxim
=D
Niko
мне кажется ты показал service locator
Niko
https://yiiframework.com.ua/ru/doc/guide/2/concept-service-locator/
Maxim
читаю
Maxim
если это единственный вариант - придётся делать так
Niko
Подключи свой "модуль" вот так и сможешь подтягивать его из любого места 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=demo', 'username' => 'root', 'password' => '', ],
Maxim
да, я уже делал так, с этим нет проблем
Niko
думаю тебе нужна всязь потому, что если ты пропишешь Yii::$app->seo->page($page->id) - то у тебя будет 2 запросв в бд, а если будешь получать свою страницу со связью одновременно Page::find()->with(['seo'])->andWhere(['id' => $id])->limit(1)->one() то будет 1 А там смотри как тебе удобней
Maxim
спасибо )
Yauheni
Приветствую, есть тут тот кто сможет оперативно помоч с некоторым запросом к бд ?
Yauheni
Собственно имею таблицу продуктов таблицу категорий и таблицу моделей
Yauheni
первая имеет к последним двум связь многие ко многим (соответствующие таблицы имеются)
Yauheni
вопрос : как мне получить продукты проверяя айди категории и айди модели одновременно
Yauheni
понимаю что с join нужно работать
Yauheni
Product::find()->select('*')->leftJoin('categories_has_product', 'categories_has_product.categories_id = 15')->limit(10)->all();
Yauheni
навоял невчто подобное но не то (не включал пока второй джоин с моделями)
Maxim
вопрос : как мне получить продукты проверяя айди категории и айди модели одновременно
проверяя, это значит что продукты должны обязательно принадлежать к категории и быть определённой модели?
Yauheni
да
Maxim
может так? select p.* from product p inner join product_category pc on pc.product_id = p.id and pc.category_id = 15 inner join product_model pm on pm.product_id = p.id and pm.model_id = 28 group by p.id
Yauheni
сейчас пробну
Yauheni
спасибо
Yauheni
нет увы не то
Yauheni
select p.* from product p inner join categories_has_product pc on pc.categories_id = 15 group by p.id
Yauheni
показывает все продукты абсолютно
Yauheni
не зависимо от условия
Yauheni
вроде заработало нашел что пропустил
Yauheni
Может еще подскажеде как это дело под AR адаптировать ?
Roman
спасибо )
Почему не копать в сторону темизации и UrlManager? В UrlManager прописать правило по которому стандартный action перезапишется на action твоего модуля, а в нем ты уже рендери и передавай во view все, что тебе нужно. Вроде сносный вариант, не? Кто что скажет по этому поводу? Как повод для размышления на эту тему: https://habrahabr.ru/post/308948/
Michael
Привет. А есть чат по юи1. 1? А работа требует причесывать портал один
Anonymous
Бояре пишушие на python'е присутствуют?
Anonymous
Всем привет
Anonymous
Можно ли назначить контроллеру несколько ID, и если да, то как это сделать через конфиги?
Anonymous
А зачем?
Это секрет
Anonymous
Anonymous
из разряда: Человек хочет сделать X, он не знает, как это сделать, но думает, что ему поможет Y - однако он не знает и как сделать Y тоже, приходит об этом спросить. Для остальных Y выглядит как очень странная задача, и после кучи потерянного времени выясняется, что человеку нужно было X, и Y вовсе даже для этого не подходит.
Anonymous
++
Anonymous
Может ему rules достаточно будет)