2016-11-04 111 views
0

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

在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 
    ]); 


    } 

我想是因为$查询=用户::发现() - >所有();.但我不知道如何替换它,以便它将根据当前用户登录检索数据。我对yii2非常感兴趣。对不起,谢谢

回答

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 ]); 
    } 
+0

非常感谢@Mohan事业份额这方面的知识。它的工作原理..我很感激它 – Fyp16

0

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

类似:

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

还,如果你只需要返回一个活动记录实例,你不需要循环在你的看法。

+0

谢谢你帮我 – Fyp16

相关问题