Здравствуйте, я схожу с ума, пытаясь добавить пользователя в базу данных.
Когда я добавляю строку:
$adduser = $this->Users->patchEntity($adduser, $this->request->getdata());
Дает мне ошибку:
Внутренняя ошибка сервера [500].
Если я прокомментирую эту строку, запись не будет сохранена.
Я проверил форму на случай, если я не былположить все поля базы данных правильно, но это нормально.Я проверил это.
Я не знаю, что может быть не так.
public function add() {
$idepersonas = TableRegistry::get('Personas')->find('all')
->select(['Personas.id','Personas.nombre', 'Personas.primer_apellido', 'Personas.segundo_apellido'])
->orderAsc('Personas.nombre', 'Personas.primer_apellido');
$adduser = $this->Users->newEntity();
if($this->request->is('post')) {
debug($adduser);
debug($this->request->getdata());
$adduser = $this->Users->patchEntity($adduser, $this->request->getdata());
//debug($this->request->getdata());
if($this->Users->save($adduser)) {
$this->Flash->success('El usuario ha sido creado correctamente', [
'key' => 'positive',
'params' => ['nombre' => $adduser->nombre]
]);
$tabler = "users";
$idUser = $adduser->id;
return $this->redirect(['controller' => 'Imagenes', 'action' => 'add', 'idUser' => $idUser, 'tabler' => $tabler]);
}
else {
debug($adduser);
echo "No funciona";
$this->Flash->error(__('El usuario no pudo ser creado. Por favor, intentelo de nuevo.'));
}
}
$data = [
'idepersonas' => $idepersonas,
'adduser' => $adduser
];
$this->set($data);
}
Уточнение:
Пользователь не может зарегистрироваться, если его нет в предыдущемсписок, это причина для консультации $ idepersonas, но это не важно, о чем я спрашиваю, только для того, чтобы это не приводило к путанице.
В конце концов, то, что я сделал вместо передачи всех данных вформа, я передал их от одного к одному с:
$isData = $this->request->getdata();
...
$adduser->email = $isData['email'];
$adduser->password = $isData['password'];
...
Пока я не получу пароль, когда я передаю пароль, вот когда я получаю ошибку 500, я думаю, что шифрование не делает этогоправильно, у меня в сущности пользователя:
protected function _setPassword($password) {
if (strlen($password) > 0) {
return (new DefaultPasswordHasher)->hash($password);
}
else {
$id_user = $this->properties['id'];
user = TableRegistry::get('Users')->recoverPassword($id_user);
return $user;
}
}
protected $_hidden = ['password'];