在此功能中,我想看看是否已经注册了具有此类电子邮件的用户,如果是,则必须更新字段,否则必须创建新用户。 我试图以下面的方式实现它,但这不起作用。
public function facebook_add(){
if ($this->request->is('post')) {
$User_data = array('User'=>$this->request->data);
$this->User->email = $User_data['User']['email'];
if($this->User->exists()){
if($this->User->save($User_data)){
$message='1';
}else{
$errors = $this->User->invalidFields();
$user_error=array_shift(array_slice($errors, 0, 1));
$message= array_shift(array_slice($user_error, 0, 1));
}
}else{
if($this->User->save($User_data)){
$message='1';
}else{
$errors = $this->User->invalidFields();
$user_error=array_shift(array_slice($errors, 0, 1));
$message= array_shift(array_slice($user_error, 0, 1));
}
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
}
如果找不到用户,则问题是启动新的用户对象。我们非常感谢您提供帮助。
答案 0 :(得分:1)
正如我在评论中所说,当您需要创建new
记录时,您应该在$this->User->create()
之前调用$this->User->save($User_data)
,以便您保存的数据已经初始化。