在一个函数中添加或更新记录
Adding or updating a record in one function
在此功能中,我想查看是否已注册具有此类电子邮件的用户,如果已注册,则必须更新字段,否则必须创建新用户。
我曾尝试通过以下方式实现它,但这不起作用。
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')
));
}
}
如果找到 none 个用户,问题是启动一个新的用户对象。非常感谢任何解决它的帮助。
正如我在评论中所说,当您需要创建一条 new
记录时,您应该在 $this->User->save($User_data)
之前调用 $this->User->create()
以便您正在保存的数据已经初始化。
在此功能中,我想查看是否已注册具有此类电子邮件的用户,如果已注册,则必须更新字段,否则必须创建新用户。 我曾尝试通过以下方式实现它,但这不起作用。
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')
));
}
}
如果找到 none 个用户,问题是启动一个新的用户对象。非常感谢任何解决它的帮助。
正如我在评论中所说,当您需要创建一条 new
记录时,您应该在 $this->User->save($User_data)
之前调用 $this->User->create()
以便您正在保存的数据已经初始化。