我正在尝试实现DbSession,正如here所解释的那样,我已经实现了两个自定义字段,如下所示:
'session' => [
'class' => 'yii\web\DbSession',
'writeCallback' => function ($session) {
return [
'user_id' => Yii::$app->user->id,
'last_write' => time(),
];
},
],
我面临的问题很简单,但我似乎只找到丑陋的解决方案,因为会话在每个操作中都会更新,当我试图注销或登录(我在登录前执行 AJAX 调用以检查内容)时,applicacion崩溃,因为用户是访客,没有user->id
。
我可以做丑陋的解决方案,但我更了解它是如何工作的,或者如何以一种只在用户仍然登录时触发的方式实现。
谢谢你!
1条答案
按热度按时间70gysomp1#
Yii::$app->user->id,
行尝试加载用户标识,但如果用户未登录,则总是失败。只需检查用户是否为guest: