根据yii2中的当前用户登录从数据库中检索数据

时间:2016-11-04 03:16:04

标签: php yii2 yii2-advanced-app yii2-user

如何根据当前用户登录从数据库中获取数据?例如,当用户登录并单击配置文件栏时,它仅显示他/她的数据。我之前尝试过,但它显示了用户的所有数据。

在personalinfo.php

    <?php foreach ($personals as $user):?><?=Html::encode("{$user->username}")?><?php endforeach;?>
    <?php foreach ($personals as $user):?><?=Html::encode("{$user->user_id}")?><?php endforeach;?>
    <?php foreach ($personals as $user):?><?=Html::encode("{$user->email}")?><?php endforeach;?>

在控制器

    public function actionPersonalinfo()
    {
    $query = User::find()->all();
    return $this->render('personalinfo', [
        'personals' => $query
    ]);


    }

我认为因为$ query = User :: find() - &gt; all();.但我不知道如何替换它,以便它将根据当前用户登录检索数据。我对yii2很新。对不起,谢谢

2 个答案:

答案 0 :(得分:1)

用以下代码替换您的代码:

在personalinfo.php

  User Id :    <?php echo $personals->user_id; ?>
  Username:    <?php echo $personals->username; ?>
  Email   :    <?php echo $personals->email; ?>

在控制器

    public function actionPersonalinfo() {
        $query = User::findOne(Yii::$app->user->id);
        return $this->render('personalinfo', [ 'personals' => $query ]);
    }

答案 1 :(得分:0)

如果要根据当前登录用户检索数据。你应该在查询中添加条件。

类似的东西:

$user = User::findOne(Yii::$app->user->id);

另外,如果您只需要返回一个Active Record实例,则无需在视图上循环。

相关问题