Lithium Auth ::检查用户的关系,关系数据库

时间:2012-10-04 16:14:47

标签: php lithium

我正在使用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()确保用户被查询并返回相应的相关数据?

1 个答案:

答案 0 :(得分:1)

虽然通常不建议存储比绝对必要的更多会话信息,但可以通过'query' auth适配器的Form配置键来执行此操作。只需在Users模型中创建一个包装器方法,该方法可以获取查询配置数组,并返回具有关联关系的用户对象。可能是这样的:

public static function authenticate (array $query) {
    return static::all($query + array('with' => 'Sites'));
}

然后,将'query' => 'authenticate'添加到您的'user'身份验证配置中。