Добрый день! Подскажите пожалуйста как в Yii2 вывести user role?
Например у меня есть админ и менеджер и нужно выводить это в соответствии кто вошел.
С Yii2 не работал, но сейчас надо быстро разобраться.
Заранее благодарю!)
2 вопроса:
1. "стоматолог - айтишник"? Я без издевки, просто интересно.
2. Как Ваша ссылка связана с вопросом? На мой взгляд никак, только слово "пользователь" и там и там встречается.
Максим Тимофеев: по вопросу ясно что человек хочет достать связи many to many, или one to many.
Я думаю Ваш ответ не достаточно ясно описывает основы решения проблемы.
где это ясно? А если у него в таблице user есть поле user_role? А если там стандартный RBAC? Там связи вообще трогать не надо, так есть методы, которые возвращают роль и в случае с phpRbac а не dbRbac они даже не в базе хранятся.
Я думаю
сильно сомневаюсь, думаю Вы влезли в тему, в которой плаваете и дали первую попавшуюся ссылку, что бы рейтинг подтянуть. Но это мое мнения. я могу ошибаться. Тем не менее ответ Ваш из ряда "пальцем в небо"
Максим Тимофеев: любой из нас, кроме Вас постарается упростить задачу. То что Вы делаете свой велосипед, это ваше решение и я Вас переубеждать не буду.
Возможно по вашему и пальцем в небо, но по крайней мере рассказываю в отличии от Вас, тем что сам использовал в написании своего проекта, и такие вещи держу в закладках.
Накидать пару абстрактных фраз как Вы - мог, но не сделал.
Максим Тимофеев: так ему только получить роль вышедшего. Взять id пользователя и получить role.
Было сказано что получить роль пользователя. Значит один пользователь - одна роль. Вы же начинаете громоздить.
Вы бы ещё сказали напиши свой framework.
Konstantin Malyarov: Ну Вы же глупости говорите. Я не говорю, что надо что-то писать. я говорю что есть готовые решения встроенные в framework, их несколько и методы получения роли у них разные. Надо конкретизировать вопрос. Мало того, там готовые компоненты с гетерами, связи можно вообще не знать, просто использовать уже готовый метод. А вы с какого-то перепугу кидаете человека в связи и hasOne hasMany. Вы вообще yii видели хоть раз?
Максим Тимофеев: видел неоднократно.
Я не говорю что готовых решений нет. Я говорю что по вопросу понятно что все уже реализовано, надо только получить данные из БД. А как реализовано у данного человека мы не знаем, может RBAC, может какой то другой способ или оригинальный велосипед. Нужно просто выбрать примитивный способом который сработает. А так же если учесть что говорится о выводе только одной группы из многих то то и выбор пал не на RBAC, а на что то более низкое.
Зависит от того как устроено все именно у Вас. yii - это framework, реализовать хранение роли пользователя можно сотней способов. Как реализовано у Вас, по Вашему вопросу не понятно.
С Yii2 не работал, но сейчас надо быстро разобраться.
В переменной $var будет массив с экземплярами класса yii\rbac\Role.
Далее проверяем наличие нужной роли в массиве.
Ещё вариант покороче: Yii::$app->user->can($role)
Где $role - название вашей роли/разрешения.