谁能给我一个关于如何创建会话并向其写入数据的示例。我已经看到了有关如何使用 write 命令将数据写入会话的语法。但是如何创建会话并检索其中的值。
在我的应用程序中,我有两个数据,form_id 和 user_id,需要在所有页面请求中使用。那么如何将其保存为会话变量并在整个应用程序中使用呢?
编辑
function register()
{
$userId=$this->User->registerUser($this->data);
$this->Session->write('User.UserId',$userId);
//echo "session".$this->Session->read('User.UserId');
$this->User->data=$this->data;
if (!$this->User->validates())
{
$this->Flash('Please enter valid inputs','/forms' );
return;
}
$this->Flash('User account created','/forms/homepage/'.$userId);
}
如何在 $this->Flash('User account created','/forms/homepage/'. $userId )中使用会话变量'User.UserId'而不是 $userId
我可以在我的所有视图文件中使用这个变量吗,因为在所有页面请求中我也传递了 userId?
编辑 2
我有 2 个控制器,用户和表单。我将用户 ID 写入用户_controller 中的会话变量。我有一个名为 homepage.ctp 的视图文件,其操作在 forms_controller 中。现在如何使用主页的 users_controller 中定义的会话变量?对不起,如果我问愚蠢的问题。我浏览了蛋糕书,但我的疑虑并未消除。我也在尝试编码的试错法,所以请帮助我。
编辑 3
我有一个会话变量“uid”,它是控制器主页操作中的用户 ID。
$this->Session->write('uid',$this->data['Form']['created_by']);
我在同一个控制器的设计动作方法中需要相同的变量。当我给
$uid=$this->Session->read('uid');
echo "uid: ".$uid;
该值未回显。
我不能在同一个控制器中使用会话变量吗?