我正在尝试检查用户是否已登录或未使用会话变量。但不能。我使用的是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!";
}
}它显示no!即使我登录了in.What,我在这里也做错了吗?
发布于 2016-07-15 14:17:46
默认情况下,Yii2高级应用程序自带了一个登录的工作示例,如果您使用的是默认登录系统,那么您将拥有完整的登录用户对象:
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();https://stackoverflow.com/questions/38371452
复制相似问题