Как вызвать из контроллера другой контроллер?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Как вызвать из контроллера другой контроллер?

Сообщение lgXenos »

Доброго
Такая дурная необходимость возникла по причине того, что мы объединяем два поддомена и надо это сделать пока что быстро и на коленке. (шеф не любит платить зарплату за красивые решения, которые делаются месяцами)
По коду вылезло несколько узких мест, когда я не могу коду "объяснить" какой поддомен ему сейчас нужен. В остальных - буду обьяснять по переменной в сессии, когда юзер залогинится.

Зачем сабж: думаю в поддомене, который будет сейчас дефолтным, сделать некую проксю на все такие узкие места разных контроллеров, чтоб обойтись пока без переносов кода. Вот как такое слепить? Или реально проще код перекинуть в новый контроллер и забить на то, что он совершенно из разных опер

Yii::$app->createController('...') не подходит, т.к. мы находимся в другом APP сейчас
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: Как вызвать из контроллера другой контроллер?

Сообщение futbolim »

Да сделайте rest controller в другом приложении и всё.
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Re: Как вызвать из контроллера другой контроллер?

Сообщение lgXenos »

futbolim писал(а):Да сделайте rest controller в другом приложении и всё.
Если честно, то не совсем понял, как он решит мою задачу вызывать 10 экшенов совершенно разных контроллеров раскиданных по приложению )
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Как вызвать из контроллера другой контроллер?

Сообщение andrei.obuhovski »

Нормальное решение: вынести логику в модельку/сервис.
Костыльное решение: писать данные в сессию/базу/кэш и делать редиректы.
Aleksey_ZX
Сообщения: 52
Зарегистрирован: 2015.08.07, 18:12

Re: Как вызвать из контроллера другой контроллер?

Сообщение Aleksey_ZX »

до запуска Yii, index.php идентифицировать какая конфигурация нужна и затем ее запускать. Это наверное самое простое .

ну или запускать несколько версий Yii. Посмотри тут. https://yiiframework.com.ua/ru/doc/guid ... e-locator/
lgXenos
Сообщения: 243
Зарегистрирован: 2015.11.30, 15:42

Re: Как вызвать из контроллера другой контроллер?

Сообщение lgXenos »

Aleksey_ZX писал(а):до запуска Yii, index.php идентифицировать какая конфигурация нужна и затем ее запускать.
так и получается по итогу...
решил не писать костыль-проксю: прохожусь по всем нужным ссылкам, дописываю префикс в урл
потом из реквеста по нему ориентируюсь и удаляю из реквеста, чтоб подключенный АРР в юи получил нормальный роут
Ответить