我在这个控制器上有一个名为sales_controller的控制器,我想要一个函数:
我上次尝试这样做是:
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函数,但我仍然不知道应该怎么做。
这一定很简单,但我还是个新手。
那么,任何人都可以帮助我吗?
由于
答案 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));