我正在使用Auth :: check('user',$ this-> request),其中'user'是我的Auth :: config配置的名称,以成功验证并根据Users表登录用户。用户登录成功后,用户信息将存储在会话中,并可通过Auth :: check('user')进行访问。
我有一个关系设计,其中Users表与名为Sites的表具有多对一关系。当Auth :: check查询Users表以对登录用户进行身份验证时,它仅返回Users表中的信息。我需要Auth:检查以返回User以及Sites表中的相关数据。 User和Site模型都具有相应的hasOne和hasMany关系。如何通过Auth :: check()确保用户被查询并返回相应的相关数据?
答案 0 :(得分:1)
虽然通常不建议存储比绝对必要的更多会话信息,但可以通过'query'
auth适配器的Form
配置键来执行此操作。只需在Users
模型中创建一个包装器方法,该方法可以获取查询配置数组,并返回具有关联关系的用户对象。可能是这样的:
public static function authenticate (array $query) {
return static::all($query + array('with' => 'Sites'));
}
然后,将'query' => 'authenticate'
添加到您的'user'
身份验证配置中。