在 Yii 中使用会话
会话允许数据在用户请求中被持久化。在 PHP 中,您可以通过$_SESSION变量访问它们。在 Yii 中,您可以通过会话应用程序组件访问会话。
第 1 步- 将actionOpenAndCloseSession方法添加到SiteController。
public function actionOpenAndCloseSession() {
$session = Yii::$app->session;
// open a session
$session->open();
// check if a session is already opened
if ($session->isActive) echo "session is active";
// close a session
$session->close();
// destroys all data registered to a session
$session->destroy();
}
在上面的代码中,我们得到了会话应用组件,打开一个会话,检查它是否处于活动状态,关闭会话,最后销毁它。
第 2 步- 在 Web 浏览器的地址栏中键入http://localhost:8080/index.php?r=site/open-and-close-session,您将看到以下内容。
要访问会话变量,您可以使用set()和get()方法。
第 3 步- 将actionAccessSession方法添加到SiteController。
public function actionAccessSession() {
$session = Yii::$app->session;
// set a session variable
$session->set('language', 'ru-RU');
// get a session variable
$language = $session->get('language');
var_dump($language);
// remove a session variable
$session->remove('language');
// check if a session variable exists
if (!$session->has('language')) echo "language is not set";
$session['captcha'] = [
'value' => 'aSBS23',
'lifetime' => 7200,
];
var_dump($session['captcha']);
}
第 4 步- 转到http://localhost:8080/index.php?r=site/access-session,您将看到以下内容。