Yii Framework Forum: Вопрос По Получению Данных Из Sqlite - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Вопрос По Получению Данных Из Sqlite Rate Topic: -----

#1 User is offline   agmanix 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 01-March 13

Posted 01 March 2013 - 09:50 AM

Доброго времени суток!
Я только вчера днем впервые опробовал Yii, поэтому прошу объяснить на пальцах :)
Вопрос такой: При входе, имя пользователя можно получить функцией Yii::app()->user->name, которая получает данные из tbl_user. У меня есть еще одна таблица, tbl_roles, в которой всего 3 записи: user, moder, admin, и в каждой записи, в ячейке users, стоят id пользователей, которые получают то или иное звание. Вопрос: как вывести роль пользователя? (ячейку name из tbl_roles, к которой принадлежит ID этого пользователя).
pS: если можно, напишите код с объяснениями.
Заранее благодарю, Макс.
0

#2 User is offline   yugene 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 513
  • Joined: 08-August 09

Posted 02 March 2013 - 03:39 AM

Приветствую на форуме, Макс

Во-первых, обычный подход в UserIdentity сохранять не name, но id пользователя. Пример, как это делается, смотрите в руководстве.
Таким образом, название роли можно будет брать напрямую из таблицы tbl_roles. например
$role = Role::model()->findByPk(Yii::app()->user->id, array('select'=>'name'));
$roleName = $role->name;

(Проверку, что такая запись найдена, опускаю)

Во-вторых, о том, как связать между собой таблицы tbl_user и tbl_roles, читайте снова таки в руководстве, которое рекомендуется (обязательно :) ) к прочтению перед любыми другими действиями связанными с фреймверком. Прописав в классе User

	public function relations()
    {
        return array(
            'role'=>array(self::HAS_ONE, 'Role', 'id'),
        );
    }


вы можете получать данные из связанной таблицы, к примеру, таким образом
$user = User::model()->with('role')->findByAttributes(array('name'=>Yii::app()->user->name));
$roleName = $user->role->name;

Подробности - по предыдущей ссылке.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users