Изменяюсь, я уже задавал подобный вопрос, но не развёрнуто - ну и естественно не получил должного ответа.
Есть ОДИН контроллер 'main'
Есть 2 роли которые используют этот контроллер.
1. Роль сотрудника
2. Роль выездного сотрудника
Задача состоит в следующем:
Обе роли загружает один контроллер, но действия у ролей разные, и action действия разные для обеих ролей. Model естественно в action подгружаются разные.
Получается мне нужно разбить этот контроллер на подконтрольны с нужными action.
Каким способом я могу это сделать в Yii2?
Ещё, для пояснения:
MainController
Роль сотрудника :
actionIndex, actionIssued,actionNew
Model app
Роль выездного сотрудника:
actionIndex, actionIssuedHome, actionNewHome
Model appHome
напишу еще раз...
у Вас 1 контроллер.. проверяйте какая у Вас роль.. и вызывайте тот или иной код..
соответсвенно код можно увести в модель.. а уже с нее возвращать только данные... и соответсвенно выводить их...
вроде все просто, что Вас смущает или что Вам не понятно?
делайте actionNew (для ОБОИХ РОЛЕЙ)
далее проверка на роль.. и далее выстраивайте логику.. что Вам тут не нравиться ?
Puganov: А в чем проблемы?
ну разные layout - можете же определить в контроллере - ДА
ну разные widgets - можете определить в контроллере и показать другую вьюху -ДА
у Вас все тоже самое один входной экшен.. а отображение разное в зависимости от роли....
Я уж не знаю как Вам объяснить на пальцах уже вроде....
И причем тут модуль, мы же вроде говорили об контроллере..
я не пойму, Вам религия не позволяет или что? ну вынесете логику в модель что бы в контроллере минимум было.. так сказать тонкий контроллер - толстая модель...
Андрей: 'это все понятно.
Ты мне объясняешь так: проверка роли-> в зависимости от роли выполнять ту или иную view и передавать в нее параметры. И так в каждом action на обе роли(хотя action по 20 штук на каждую и все разные.)
Я хочу так: загрузить глобальный mainController. -> проверка ролей(в зависимости от ролей подгружать один из двух других контроллеров внутрь главного, чтобы главный перенял его action).
Так реально сделать?
Можно ли унаследовать контроллеры внутри глобального контроллера?
В зависимости от текущей роли подружать внуть глобального контроллера - подконтроллер.. Но чтобы глобальный получил все actions подконтроллера?