Cakephp - 更新已登录用户的信息

时间:2009-12-21 17:35:10

标签: php authentication cakephp controller save

我在这个控制器上有一个名为sales_controller的控制器,我想要一个函数:

  1. 更新有关销售的信息 - > DONE
  2. 在其他模型上创建新记录 - > DONE
  3. 更新用户记录上的字段 - >问题
  4. 我上次尝试这样做是:

    App::import('model','User');
    $user= $this->Auth->user();
    $nr = $this->Auth->user('nr') - 1 ;
    
    if($user->save(array('nr'=>$nr)))
    {
        $this->Session->setFlash(__('DONE! ', true));
        this->redirect(array('action'=>$page,$params));
    }
    

    我知道方法$ this-> Auth-> user()返回一个数组,我读到“save”对数组不起作用......

    我试图在用户上调用read函数,但我仍然不知道应该怎么做。

    这一定很简单,但我还是个新手。

    那么,任何人都可以帮助我吗?

    由于

2 个答案:

答案 0 :(得分:2)

试试这个:

App::import('Model', 'User');
$user = new User();
$user->id = $this->Auth->user('id');

/* if you really need to store the entire array, instead of accessing individual fields as needed */
$user_info = $this->Auth->user();

/* in saveField, add 'true' as a third argument to force validation, i.e. $user->saveField('nr', $this->Auth->user('nr') - 1, true) */
if ($user->saveField('nr', $this->Auth->user('nr') - 1)) {
   $this->Session->setFlash(__('DONE! ', true));
   this->redirect(array('action' => $page, $params));
}

答案 1 :(得分:0)

您已加载了User对象,但您没有对其进行任何操作。您已将$ user的值设置为从Auth对象返回的数组,然后您尝试在其上调用save方法。您想要在User对象上调用save。

我认为你想说的是:

$this->User->id = $this->Auth->user('id');
$this->User->save(array('nr'=>$nr));