获取yii中所有州的列表

时间:2015-05-05 08:45:48

标签: php yii getstate

这是我的代码:

for ($i=0; $i < count($rights); $i++) {
    $this->setState($rights[$i], true);
}

这里我动态设置setState,但我想获取列表中的所有状态。我没有找到任何关于此的参考。我才发现这个:

Yii::app()->user->getState('name');

但这对我没有帮助。如何获得yii中所有状态的列表? THX

1 个答案:

答案 0 :(得分:1)

根据CWebUser的API,该目的没有任何功能。

根据setState的代码,您可以看到它将值保存在会话中,并且没有其他方式存储&#34;使用过的状态。 (就像所有创建状态的数组一样)

public function setState($key,$value,$defaultValue=null)
{
    $key=$this->getStateKeyPrefix().$key;
    if($value===$defaultValue)
        unset($_SESSION[$key]);
    else
        $_SESSION[$key]=$value;
}

一个解决方案是手动浏览所有现有会话($ _SESSION),但在我看来,这不是一个非常有效的想法。

另一个解决方案是使用属性/变量(array)来保存您创建的所有状态,而不是使用foreach循环,使用getState。< / p>