【问题标题】:Yii Unset SessionYii 未设置会话
【发布时间】:2014-07-16 18:00:33
【问题描述】:

我在 yii 中有一个Session variable,它对应于特定的用户状态

Yii::app()->user->setState('mycustomvar', 550);

这样我就可以得到这个变量了

Yii::app()->user->mycustomvar

我怎样才能unset 只有这个变量?

我有这样的解决方案

Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar');

这是正确的做法吗?

【问题讨论】:

    标签: php session yii


    【解决方案1】:
    Yii::app()->user->setState('mycustomvar', null);
    

    或您在设置变量时使用的任何其他初始/默认值。

    the docs。每当您将变量设置为默认值(null 除非明确设置为其他值),它将从会话中删除。

    编辑:

    顺便说一句,你也可以通过魔术方法来设置它,即:

    Yii::app()->user->mycustomvar = 550;
    

    【讨论】:

    • 无法像这样设置值 Yii::app()->user->mycustomvar = 550;
    • @LifeHacker,对不起,我不太清楚。一旦设置了属性,您就可以设置这样的属性。因此,必须始终使用setState 执行初始设置。但是,例如,您可以像这样取消设置属性:Yii::app()->user->mycustomvar = null 或以相同的方式将其设置为另一个值。
    • Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar');我把它删除了 像这样,但这是正确的方式
    • 将状态设置为 null 的作用完全相同
    【解决方案2】:

    我终于通过使用这个遇到了一个解决方案

    Yii::app()->session->remove(Yii::app()->user->getStateKeyPrefix() . 'mycustomvar');
    

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2018-09-22
      • 2019-12-29
      • 2013-05-13
      • 2019-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多