CakePHP: получение ошибок валидации для несуществующих полей

У меня странные проблемы с формой в CakePHP.
Я пытаюсь сохранить данные, которые я получил из формы в модель Booking, Некоторые контактные данные, сообщение, номер телефона и адрес электронной почты, стандартные вещи. Данные опубликованы, и я пытаюсь сохранить их через

$this->Booking->save ($this->request->data);

Но поскольку я пытаюсь сохранить, два поля не проходят проверку и не останавливают процесс сохранения:
phone_buyer а также carsign,

Странно то, что эти два поля не являются частью формы, которую я пытаюсь сохранить. Они не появляются в $this->data, как и ожидалось:

$ This-> request-> данные:

    array(
'Booking' => array(
'question' => 'Lieber Vermieter,
ich würde gerne im angegebenen Zeitraum auf deinem Parkplatz parken. Ist das möglich? Ich freue mich auf deine Rückmeldung.
Liebe Grüße',
'start_date' => '30.10.2014',
'end_date' => '30.10.2014',
'sellerid' => '294',
'buyerid' => '301',
'parkid' => '10468',
'status' => 'Angebot',
'answer' => 'Blserntesn7x6 u fcgt c c ',
'ppemail_seller' => '*email*',
'phone_seller' => '0532732123',
'acceptrules' => '1',
'acceptrules2' => '1',
'id' => '1012'
)
)

…и они не являются частью формы, которую я отправляю. Их нет даже в любой другой форме на странице. Однако они существуют как поля в базе данных и имеют правила проверки в модели:

Booking.php (модель):

class Booking extends AppModel {

public $validate = array(

//(...)
'phone_seller' => array (
'rule' => array ('notEmpty'),
'message' => 'Damit dich der Mieter kontaktieren kann, brauchst du eine Telefonnummer.'
),
'ppemail_seller' => array (
'rule' => array ('notEmpty'),
'message' => 'Um das Geld der Miete zu empfangen, benötigst du ein PayPal-Konto.'
),

// These two are giving me headaches:
'carsign' => array(
'required' => array(
'rule' => array('notEmpty'),
'required' => false,
'message' => 'Du brauchst ein Autokennzeichen, um den Parkplatz zu buchen.'
)
),
'phone_buyer' => array(
'required' => array(
'rule' => array('notEmpty'),
'required' => false,
'message' => 'Damit dich der Vermieter kontaktieren kann, brauchst du eine Telefonnummer.'
)
)

);

}

Но согласно документации, которую я читал до сих пор, правило notEmpty не должно ничего делать, если соответствующее поле не является частью отправленной формы. Чтобы быть уверенным, я добавил required=>false, но они все еще бросают ошибки в меня.
Буду очень рад любой помощи, заранее благодарю. 🙂
Извините, если некоторые вещи трудно понять, английский не мой родной язык.

Обновить:

Спасибо за предложения, я нашел проблему. Я написал это в ответе ниже.

0

Решение

Я нашел проблему.

Проблема заключалась в том, что в некотором коде перед сохранением, $this->Booking->read(); был использован для получения содержимого базы данных. Так как эта функция перезаписывает данные в модели (как я узнал Вот), данные, которые я пытался сохранить, были потеряны и заменены содержимым базы данных (в которой отсутствовали эти конкретные поля). Я заменил функцию на $this->Booking->findById($id); и все работало нормально.

0

Другие решения

Вы пробовали с 'allowEmpty' ключ?

'phone_buyer' => array(
'required' => false,
'allowEmpty' => false,
'message' => 'Damit dich der Vermieter...'
)
0