在这个函数中,我想看看是否已经注册了这样的电子邮件用户,如果已经注册了,则必须更新字段,如果不是,则必须创建一个新用户。我试图以以下方式实现它,但这是行不通的。
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')
));
}
}如果没有找到用户,问题是启动一个新的用户对象。任何帮助都是非常感谢的。
发布于 2015-03-10 15:00:34
正如我在注释中所说的,当您需要创建new记录时,yout应该在$this->User->save($User_data)之前调用$this->User->create(),以便您保存的数据已经初始化。
https://stackoverflow.com/questions/28966053
复制相似问题