如何根据当前用户登录从数据库中获取数据?例如,当用户登录并单击配置文件栏时,它仅显示他/她的数据。我之前尝试过,但它显示了用户的所有数据。
在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很新。对不起,谢谢
答案 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实例,则无需在视图上循环。