Мое значение отладки установлено к 2
, и это отображает все запросы, кроме того, в котором я нуждаюсь.
Я имею Items
метод контроллера, который призывает этот метод User
модель (Объект belongsTo Пользователь):
function add_basic($email, $password) {
$this->create();
$this->set(array(
'email' => $email,
'password' => $password
));
if($this->save()) {
return $this->id;
}
else {
return false;
}
}
Я подтвердил это $email
и $password
передаются в функцию правильно (и заполняются с законными данными). email
и password
названия полей в User
модель.
Я также подтвердил это на $this->save()
это возвращается false
, но когда я просматриваю страницу, где это происходит, запрос не печатается в отладке, и нет никакой ошибки, будучи брошенным, таким образом, я понятия не имею, что идет не так, как надо.
Какие-либо идеи о том, как я вижу ошибку, или почему запрос, кажется, не становится выполняемым?
Это странно, право причины после этого у меня есть другая модель, сохраняющая данные к нему тем же самым способом, это уходит без помехи.
Есть ли у вас метод beforeValidate()
или beforeSave()
в модели или модели приложения? Если да, то возвращают ли они true? Если этого не произошло, используйте отладчик, установите точку останова в IDE в верхней части метода cake/libs/models/model.php save()
и пройдитесь по коду, пока он не вернет false. В противном случае добавьте die('here');
вызовы.
Вероятно, это даст вам нужную информацию (конечно, при условии, что она не сохраняется из-за недействительных данных):
if(!$this->save()){
debug($this->validationErrors); die();
}
Попробуйте следующее:
if ($this->save()) {
return $this->id;
}
else {
var_dump($this->invalidFields());
return false;
}