0

如何根据当前用户登录从数据库中获取数据?例如,当用户登录并单击个人资料栏时,它只显示他/她的数据。我以前尝试过,但它显示了用户的所有数据。

在个人信息.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()->all();。但我不知道如何替换它,以便它将根据当前用户登录检索数据。我对 yii2 很陌生。对不起,谢谢

4

2 回答 2

1

将您的代码替换为:

在个人信息.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 ]);
    }
于 2016-11-04T06:04:25.340 回答
0

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

就像是:

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

此外,如果您只需要返回单个 Active Record 实例,则无需循环查看视图。

于 2016-11-04T03:40:14.423 回答