任何人都可以给我关于如何创建会话和向其中写入数据的例子。我已经看到了如何将数据写入到使用写命令会话语法。但如何创建一个会话和检索它的值。

在我的应用程序,我需要在所有的页面请求中使用两个数据,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);            

}   

如何使用会话变量的 'User.UserId'而不是$用户id在$这个 - >闪存( '用户帐户创建', '/表格/主页/'。 $用户id );

和我可以用我的所有视图文件这个变量,因为在所有的页面请求我也通过用户id?

修改2

我有2个控制器,用户和形式。我写的用户ID在用户会话变量的 _controller。我有一个名为homepage.ctp一个视图文件,其作用是在forms_controller。的现在,我该如何使用在主页的users_controller定义会话变量?很抱歉,如果我问愚蠢的问题。我通过cakebook去了,但我的疑惑并没有被清除。我也想试编码错误的方法,所以请帮助我。

修改3

我有一个会话变量为“uid”,这是在控制器的主页动作的用户标识。

       $this->Session->write('uid',$this->data['Form']['created_by']);

我需要在同一个控制器的设计操作方法相同的变量。 当我给

             $uid=$this->Session->read('uid');
            echo "uid: ".$uid;

值不回应。

我不能使用会话变量在同一个控制器?

有帮助吗?

解决方案 5

我发现之所以UID没有被呼应(编辑3问题的一部分)。 这是由于一个愚蠢的错误,不得不结束标记之后白色空间?>在控制器中。现在,它工作正常。

其他提示

在面包店是你最好的朋友:

http://book.cakephp.org/view/398/Methods

所有会话的读/写操作的控制器属于:

$this->Session->write('Person.eyeColor', 'Green');

echo $this->Session->read('Person.eyeColor'); // Green

在蛋糕PHP中可以如创建会话这样

$this->request->session()->write('user_id', 10);

和可以像这样的读取会话值

echo $this->request->session()->read('user_id');

超级简单!

您不必编写创建会话,他们已经内置在任何代码,然后你只需要使用读取和如上所述写会话。此外在这里看到更多的细节:

http://book.cakephp.org/2.0 /en/core-libraries/components/sessions.html 用于控制器

http://book.cakephp.org/2.0 /en/core-libraries/helpers/session.html 用于浏览

在这种情况下,这将是:

$this->Flash('User account created','/forms/homepage/'.$this->Session->read('User.UserId'));

和第二个问题是由Jason Miy( http://api.cakephp.org anwered /班/会议辅助)。你可以简单地在视图中使用:

$userId = $session->read('User.UserId');

读取相应的菜谱页慢慢地,仔细通常有很大帮助...

当我有奇怪的会话行为,这帮助我。

MODEL:

 function clearAllDBCache() {
    $db =& ConnectionManager::getDataSource($this->useDbConfig);
    $db->_queryCache = array();
   }

`

接取您的帮助器SessionHelper在lib/Cake/View/Helper/SessionHelper.php并添加方法:

public function write($name = null) {
    return CakeSession::write($name);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top