CakePHP:用户编辑后更新所有表格?

时间:2014-04-23 11:38:43

标签: php cakephp

我正在开发一个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链接到用户表),无论是用户详细信息还是地址详细信息。

感谢。

1 个答案:

答案 0 :(得分:2)

使用$this->Session->write('Auth', $this->User->read(null,$NewUserID));比较debug($_SESSION)语句之前和之后会话中存储的用户信息的数组格式。你会发现数组格式不一样。因此,以预期的格式存储信息,因为您的问题将得到解决。

此外,您应在将信息设置为会话之前取消设置密码字段。