在Yii框架中设置会话

3

我正在使用Yii开发一个网站。

页面上有一个按钮。当用户点击它时,我需要设置一个会话变量,并在用户点击另一个按钮时获取会话值。

我该如何实现?

4个回答

15

使用CWebUser状态方法

//set session variable
Yii::app()->user->setState("state_name", "value");

//check session variables
Yii::app()->user->hasState("state_name");

//get session variable
Yii::app()->user->getState("state_name");

//delete session variable (thanks @Kailas)
Yii::app()->user->setState("state_name", null);

2
通过设置来删除状态//删除状态 Yii::app()->user->setState('stat_name',null); - Kailas

2
您可以使用CWebUser的setState方法。该方法的详细信息请参见此处
Yii::app()->user->setState('key', 'value');

我不能在视图文件中使用它,对吗?我猜我必须在视图文件中使用ajax发送设置会话请求到控制器,是吗? - hd.
你所说的和Yii::app()->session之间有什么区别? - hd.
1
Yii::app()->session 是只读的。 - w43L
谢谢w43L,但我使用Yii::app()->session('test') = 'something';设置了会话。 - hd.

1

简单

Yii::app()->session['var'] = $encrypted_txt;


-1
$session = Yii::$app->session;

// 获取会话变量。以下用法是等效的:

$language = $session->get('language');

// 设置一个会话变量。以下用法是等价的:

$session->set('language', 'en-US');

// 移除一个会话变量。以下用法是等价的:

$session->remove('language');

// 检查会话变量是否存在。以下用法是等效的:

if ($session->has('language'))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接