2009-12-21 67 views
2

我在這個控制器我在至極的功能控制器名爲sales_controller我想:CakePHP的 - 更新上記錄的用戶信息

  1. 關於出售更新信息 - >完成
  2. 創建一個新的在其他模型記錄 - >完成
  3. 更新的用戶記錄的字段 - >問題

我最後的嘗試做到這一點是:

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)); 
} 

我知道)的方法$這個 - > Auth->用戶(返回一個數組,我讀了「保存」的陣列不工作...

我試圖調用read功能上用戶,但我仍然不知道該怎麼做。

這一定是簡單的事情,但我仍然是一個新手大聲笑。

那麼,任何人都可以幫助我嗎?

謝謝

回答

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)); 
} 
+0

這就是謝謝;) – Canastro 2009-12-21 22:44:08

+0

你應該使用'$ user = ClassRegistry :: init('User');'來代替。 – deizel 2009-12-24 13:04:44

0

你已經加載了用戶對象,但你沒有做任何事情。您已將$ user的值設置爲從Auth對象返回的數組,然後您正試圖對其調用save方法。你想調用保存在用戶對象上。

我想你想說的是:

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

我做這些修改,但不是$這個 - > Auth->用戶( '身份證' )我用$ this-> Auth-> user(),因爲我需要加載關於用戶的所有信息。但是我仍然收到空白頁面並且沒有修改用戶。 print_r的輸出($ this-> User);是:Array([User] => Array([id] => d12b1341-ee3e-11de-90ad-368a14c18e81 [login] => NoOne [email_address] => [email protected] [group_id] => 4b2f7282-cc98- 4db0-8994-0cd49279ab65 [nr] => 2 [active] => 1 [created] => 2009-12-20 01:18:55 [modified] => 2009-12-21 13:09:13)) – Canastro 2009-12-21 19:24:33