2016-11-04 5 views
0

現在のユーザーログインに基づいてデータベースからデータをフェッチする方法はありますか?たとえば、ユーザーがログインしてプロファイルバーをクリックすると、そのユーザーのデータのみが表示されます。私は前に試したが、それはユーザーのすべてのデータを表示します。コントローラyii2の現在のユーザーログインに基づいてデータベースからデータを取得

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


    } 

で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;?> 

ため、私は$クエリを考える=ユーザー::()を見つける - >すべての()を;.しかし、私はそれを置き換える方法を知らないので、現在のユーザーログインに基づいてデータを取得します。私はyii2でとても新しいです。現在ログインしているユーザーに基づいてデータを取得する場合は、

答えて

1

であなたのコードを置き換えます:それは動作します。..コントローラ

でpersonalinfo.php

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

+0

どうもありがとう@Mohan原因シェアこの知識を支援するための

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

0

をお送りします。クエリに条件を追加する必要があります。

何かのように:あなたが唯一である場合にも

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

、あなたのビューでループする必要はありません、には、単一のActive Recordのインスタンスを返す必要があります。

+0

感謝を..私はそれを感謝しています – Fyp16

関連する問題