我在config
中有以下代码'user' => [
'identityClass' => 'common\models\UserCustomer',
'authTimeout' => 30,
],
在30秒不活动之后,我刷新浏览器,退出的帐户显示出现登录链接,但是在我的视图中仍存在从会话显示的某些变量。
以下是我在视图中的部分代码
<?php
$lsproduk = Yii::$app->session['produkcart'];
//echo "counter awal Yii::$app->session['counter']";
if(isset (Yii::$app->session['counter']))
{
foreach($lsproduk as $key => $produk){
if(VwProdukAgent::find()->where(['produk_agen_id' => $produk->produk_agen_id])->andWhere(['is_active_produk_agent' => false])->count() > 0){
unset($lsproduk[$key]);
}
}
Yii::$app->session['produkcart'] = $lsproduk;
$lsproduk = Yii::$app->session['produkcart'];
Yii::$app->session['counter'] = count($lsproduk);
$counter = Yii::$app->session['counter'];
//display total product
echo "<span class='cart-count'>$counter</span></a>";
}
?>
刷新几次并不能解决问题。
当我正常按下注销按钮时,视图中没有显示变量。
为了您的信息我当前的应用程序是电子商务,超时显示的变量是来自会话的购物车上的总产品。当我正常按下注销时,它会有所不同,当然因为会话在注销方法中被破坏,所以购物车是空的。
有什么不对吗?让我知道。
已更新
然后如何在超时时删除其他会话变量?
答案 0 :(得分:0)
您可以使用与yii\web\User组件中相同的机制。
cartExpire
)。Yii::$app->getSession()->set('cartExpire', time() + 30);