2017-08-21 5 views
0

現在のユーザーログインに基づいてデータベースからデータをフェッチする方法はありますか?たとえば、ユーザーがログインしてページを開くと、そのユーザーのデータのみが表示されます。あなたがYii::$app->user->identityで認証されたユーザ情報を取得し、データベースから必要なデータを取得することができますYii2の現在のユーザーログインに基づいてデータベースからデータを取得する方法

$sql = "Select * from datatable Where username = username"; 
+0

は、 "どこで" 句=>選択を使用してください*ユーザー名= '$ユーザ名' –

答えて

0

あなたは、WHERE句

例を使用する必要があります。

+0

が実際にこのクエリ私はそれを知っているが、実際には、私のテーブルから従業員の管理システムを作っているので、従業員 –

+0

の特定のデータを照会に表示するにはwhere句を使用するだけです。特定の人やそれが何であるかのデータを取得するには、 –

0

+0

実際にこのクエリを知っていますが、私は従業員の管理システムを作成していますので、従業員の特定のデータを表示するにはどうすればいいですか? –

+0

[link](http:// www .yiiframework.com/doc-2.0/guide-security-authorization.html#rbac)実装と管理が簡単です。アプリ内に別のセクションへのアクセスを制御する必要があると仮定します。 – Kalu

1

私はそれが解決だと思います。 (それは私の同様のプロジェクトの作業コードです)。

コントローラー:

public function actionVacancyList() 
{ 

    if (!Yii::$app->user->isGuest) 
    { 
     $user_vacancies = Vacancies::getVacanciesByUser(Yii::$app->user->id); 

     return $this->render('vacancy-list', [ 
      'user_vacancies' => $user_vacancies, 
     ]); 
    } 
    return $this->redirect(['/site/login']); 

} 

モデル:

static public function getVacanciesByUser($user_id) 
{ 
    return Vacancies::find() 
     ->where(['user_id' => $user_id]) 
     ->orderBy('id DESC') 
     ->limit(100) 
     ->all(); 
} 
+0

トピックスターターの場合、アクティブレコードを使用して、ビューでの快適なレンダリングのためにオブジェクトで結果を取得することがベストプラクティスです。 したがって: 1.コントローラにゲストがあるかどうかを確認します。 2.そうでなければ、Yii :: $ app-> user-> idでユーザーIDを取得し、モデルメソッドに渡します。 3.特定のユーザーにログインして表示に渡すための句付きAR(ActiveRecord)を使用してデータベース結果から取得します。 4.レンダービュー。 – Oleg

関連する問題