Lithium Auth:: проверка пользователя с помощью отношений, реляционная база данных
Я использую Auth::check('user', $this->request), где 'user' - это имя моей конфигурации Auth::config, для успешной аутентификации и входа пользователей в систему по таблице Users. После успешного входа в систему пользовательская информация сохраняется в сеансе и может быть доступна через Auth::check('user').
У меня есть реляционный дизайн, в котором таблица Users имеет отношение многие-к-одному с таблицей с именем Sites. Когда Auth:: check запрашивает таблицу Users для аутентификации пользователя, вошедшего в систему, он возвращает только информацию из таблицы Users. Мне нужен Auth: установите флажок, чтобы вернуть пользователя с соответствующими данными из таблицы сайтов. Модели User и Site имеют соответствующие отношения hasOne и hasMany. Как я могу гарантировать, что пользователь запрашивается и возвращается с соответствующими связанными данными через Auth::check()?
1 ответ
Хотя обычно нежелательно хранить больше информации о сеансе, чем это абсолютно необходимо, это можно сделать с помощью 'query'
конфигурационный ключ Form
Аут адаптер. Просто создайте метод обертки в вашем Users
модель, которая может принимать массив конфигурации запроса и возвращать объект пользователя со связанными отношениями. Вероятно, что-то вроде этого:
public static function authenticate (array $query) {
return static::all($query + array('with' => 'Sites'));
}
Затем добавьте 'query' => 'authenticate'
на ваш 'user'
Конфигурация аутентификации.