我正在开发一个CakePHP网站,其中大部分都可以工作,但我正在尝试更新用户页面(我现在重定向到这个页面,一旦我开始工作,我计划将其作为AJAX更新)。现在代码确实有用了,
if ($this->request->is('post')) {
$this->loadmodel('Setting');
$this->loadmodel('Address');
if ( $this->User->save($this->request->data, $validate = true, $fieldList = array('firstname','surname','homephone','mobilephone','dob','gender')) ) {
$NewUserID = $this->Auth->user('id');
$this->Session->write('Auth', $this->User->read(null,$NewUserID));
$this->Session->setFlash('Update done :)', 'GoodFlashMsg', array(), 'Good');
$this->redirect('/user');
} else {
$this->Session->setFlash('Sorry :( There has been an error, please try again', 'BadFlashMsg', array(), 'Bad');
$this->redirect('/');
}
} //End of POST
现在这就是它的意思,保存更新的用户详细信息(地址是另一个表,我稍后会做)。但是,当我重新加载用户ID以刷新Auth Sesssion信息时,地址表信息似乎从Auth会话中消失,因为当它重定向重新加载页面时,地址信息是空白的吗?
当用户编辑任何信息时,我只是尝试更新Auth信息(所有信息,地址表通过ID链接到用户表),无论是用户详细信息还是地址详细信息。
感谢。
答案 0 :(得分:2)
使用$this->Session->write('Auth', $this->User->read(null,$NewUserID));
比较debug($_SESSION)
语句之前和之后会话中存储的用户信息的数组格式。你会发现数组格式不一样。因此,以预期的格式存储信息,因为您的问题将得到解决。
此外,您应在将信息设置为会话之前取消设置密码字段。