2015-12-10 129 views
0

如果我运行登录功能,它将打印User成功登录后,用户未登录到YII2前端

public function actionLogin(){ 
if ($model->load(Yii::$app->request->post()) && $model->login()) { 
    if (Yii::$app->user->isGuest) { 
     echo "guest"; 
    } else { 
     echo "User"; 
    } 
    return $this->redirect(['dashboard']); 
} 

重定向后如果我运行仪表板功能它打印guest

public function actionDashboard() 
{   
    if (Yii::$app->user->isGuest) { 
     echo "guest"; 
    } else { 
     echo "User"; 
    } 
} 

Login型号:

public function login() 
{ 
    if ($this->validate()) { 
     return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0); 
    } else { 
     return false; 
    } 
}   

这是getUser功能:

protected function getUser()  
{ 
    if ($this->_user === null) { 
     $this->_user = Customer::findByEmail($this->email); 
    } 

    return $this->_user; 
} 

请帮我到另一个函数检查用户是否被记录?

回答

0

我成功解决了这个问题。

只是改变了后端/配置/ main.php或前端/配置/ main.php

改变这种

'components' => [ 
     'user' => [ 
      'identityClass' => 'common\models\Customer', //or Any models you want 
      'enableAutoLogin' => true, 
     ], 
] 
+0

这已经是我的前端\设置\ main.php '使用者' => [ 'identityClass'=>'frontend \ modules \ customer \ models \ Customer', 'enableAutoLogin'=> true, 'loginUrl'=> ['login'], ], –

+0

请任何其他答案? –

+0

你可以使用Yii调试器发布数据库日志吗? –

相关问题