@AlexSer

Можно ли объявить параметры в yii2, так чтобы его получали все контроллеры?

Как объявить параметры, чтобы их получали все контроллеры. Дело в том что у меня в проекте несколько организации,
и каждый раз прописывать
User::findOne(Yii::$app->user->id)->organization->id

при обновлений и сохранений неудобно. Можно как-нибудь по другому решить.?
Да можно сессиями, но хотелось бы именно через общие параметры.
  • Вопрос задан
  • 56 просмотров
Пригласить эксперта
Ответы на вопрос 3
@sidni
Php Developer
Стремная идея в целом нет необходимости в этом функционале.
Ну берешь базовый контроллер Юии наследуешься от него получаешь свой базовый контроллер, переопределяешь конструктор и внем прописываешь эту строчку и сохраняешь результат в протектед поле (или в приватное с геттером).
Остальные свои контроллеры наследуешь от полученного своего
Ответ написан
@zerg2000
Может так Yii::$app->user->identity->organization->id ?
Ответ написан
vitaly_74
@vitaly_74
первый вариант: Yii::$app->user->identity->organization->id
Добавить в класс User (который ActiveRecord) связь с hasOne (или hasMany) и связать с таблицей организацией
Насколько я понял это у вас уже реализовано, просто попрробуйте запустить
второй вариант.
Добавить как глобальную переменную т.е. Yii::$app->organization->id
Объяснено тут
третий вариант:
добавить как параметр
Yii::$app->params['organization_id'];
для этого в конфиге приложения добавить графу
'params' => [
        'organization_id' => User::findOne(Yii::$app->user->id)->organization->id,
    ],
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы