2 lx377213 lx377213 于 2016.03.04 17:31 提问

Yii 登录怎样保存更多信息
yii
public static function findByUsername($username)
{
     return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
}

public function getRole()
{
    return $this->hasOne(Role::className(), ['role_id' => 'user_role_id'])->inverseOf('user');
}

findByUsername查询user表中用户信息返回一个user对象,本想在user对象中插入role对象。查看文档中提供一个inversof方法,
但查出的结果是role对象中保存着一个user对象。请问怎样在user对象保存更多信息。

2个回答

lx377213
lx377213   2016.03.09 16:18
已采纳

首先getRole方法建立对应关系
查询时直接使用连接
return static::find()->joinWith('role')
->where(['id' => $id, 'status' => self::STATUS_ACTIVE])
->one();
(这个连接好象有什么懒加载查一文档)
页面调用时Yii::$app->user->identity->role就行了

caozhy
caozhy   Ds   Rxr 2016.03.06 07:21

既然你可以保存一个对象,那么可以聚合另一个对象作为属性然后保存即可。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!