Ang*_*ine 8 session cakephp-2.0
任何人都可以给我一个如何创建会话并向其写入数据的示例.我已经看到了如何使用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);
}
Run Code Online (Sandbox Code Playgroud)
如何在$ this-> Flash中使用会话变量'User.UserId'而不是$ userId('用户帐户创建','/ forms/homepage /'.$ userId);
我可以在所有视图文件中使用此变量,因为在所有页面请求中我还传递了userId吗?
编辑2
我有2个控制器,用户和表单.我将userid写入users _controller中的会话变量.我有一个名为homepage.ctp的视图文件,其操作在forms_controller中.现在我如何使用主页中users_controller中定义的会话变量?对不起,如果我问愚蠢的问题.我浏览了蛋糕书,但我的怀疑并没有被清除.我也在尝试编译的错误方法,所以请帮帮我.
编辑3
我有一个会话变量'uid',它是控制器主页操作中的用户ID.
$this->Session->write('uid',$this->data['Form']['created_by']);
Run Code Online (Sandbox Code Playgroud)
我需要在同一个控制器的设计动作方法中使用相同的变量.当我给
$uid=$this->Session->read('uid');
echo "uid: ".$uid;
Run Code Online (Sandbox Code Playgroud)
价值没有回应.
我不能在同一个控制器中使用会话变量吗?
Mik*_*e B 10
面包店是你最好的朋友:
http://book.cakephp.org/view/398/Methods
您的所有会话读/写都属于控制器:
$this->Session->write('Person.eyeColor', 'Green');
echo $this->Session->read('Person.eyeColor'); // Green
Run Code Online (Sandbox Code Playgroud)
在cake php中,您可以像这样创建会话
$this->request->session()->write('user_id', 10);
Run Code Online (Sandbox Code Playgroud)
你可以像这样读取会话值
echo $this->request->session()->read('user_id');
Run Code Online (Sandbox Code Playgroud)
超级简单!