2016-07-14 4 views
0

ユーザーがセッション変数を使用してログインしているかどうかを確認しようとしています。できない。私はyiiフレームワークのデフォルトのログインを使用しています。これは、コントローラのアクションです:ログインしているかどうかを調べる

public function actionLogin() 
{ 

    if (!\Yii::$app->user->isGuest) { 
    return $this->redirect(Yii::$app->request->baseUrl.'/todo/index'); 
    } 

    $model = new LoginForm(); 
    if ($model->load(Yii::$app->request->post()) && $model->login()){ 
    $session = Yii::$app->session; 
    $_SESSION['is_logged_in'] = TRUE; 

    return $this->redirect(Yii::$app->request->baseUrl.'/todo/index');  
    } 

    return $this->render('login', [ 
    'model' => $model, 
    ]); 

} 

と、ユーザーがログインされているかどうか確認するために私が使用:

public function actionIndex() 
{ 
    $session = Yii::$app->session; 
    if (isset($_SESSION['is_logged_in'])) { 
    echo "yes!"; 
    } 
    else { 
    echo "no!"; 
    } 
} 

は、それが表示されます!私がログインしていても私はここで間違っていますか?デフォルトのログインシステムで使用される場合

+1

http://stackoverflow.com/questions/20965023/sessions-in-yii チェックは、ユーザーがログインするかしないのチェックのためにセッションを使用したいですかなぜ、このリンク – Hardik

+0

。 isGuest()メソッドはそれを正確に行います。 – Chinmay

+0

ログインしたユーザーのユーザーIDも取得する必要があるため@ Chinmay – Steve

答えて

0

Yii2高度なアプリは、ログインの作業例にデフォルトで付属し、その後、ユーザーにlogedの完全なオブジェクトを持っている:

print_r(Yii::$app->user); 

あなたがアクセスできるYii::$app->user->id, Yii::$app->user->name

あなたはセッションをしたい場合は、それも行うことができます。

use yii\web\Session; 
$session = Yii::$app->session; 
// check if a session is already open 
if ($session->isActive) ... 
// open a session 
$session->open(); 
// close a session 
$session->close(); 
// destroys all data registered to a session. 
$session->destroy(); 

Reference

関連する問題