2012-08-13 21 views
0

如果我有這樣的形式:插入超出了額外的數據是從輔助

形式--- 用戶名 電子郵件 密碼

而且我也需要插入時生成一個唯一的ID。

此代碼會將用戶名,電子郵件和密碼保存在數據庫中。我的問題是關於codeLink。

$user_arr = $this->request->data; 
$this->User->save($user_arr) 

還有一個(簡單)的方式,或者我應該做這樣的事情?

$username = $user_arr['User']['username']; 
$email = $user_arr['User']['email']; 
$password = $user_arr['User']['password']; 
$codeLink = uniqid(); 

$user_arr = array('User'=>array('username'=>$username, 'email'=>$email, 'password'=>$password, '$code'=>$codeLink)); 

回答

2

將它傳遞給模型,像這樣之前,你可以注入值進入後數據:

這種
$this->request->data['User']['codeLink'] = unqueid(); // <-- this line 
$this->User->create($this->request->data); 
if ($this->User->save()) { 
} else { 
} 

東西應該被移動到模型中,雖然。

class User extends AppModel { 

    public function register($data) { 
     $data[$this->alias]['codeLink'] = uniqueid(); 
     $this->create($data); 
     return $this->save(); 
    } 

} 

// your controller 

if ($this->User->register($this->request->data) {}...