Я работаю над формой, которая содержит данные пользователя, в частности поле номера телефона.Номер телефона обычно не требуется, поэтому единственным правилом проверки в модели является правило usphone
.Однако, если пользователь отправляет эту форму, номер телефона становится необходимым.Я думал, что смогу просто добавить правило validate
на лету, установить модель и вызвать метод validates
, но либо я делаю это неправильно, либо он работает не так, как я ожидал.
В моем контроллере:
# Update a few validation rules that are specific to this context
$this->Proposal->Requestor->validate['phone_number']['notempty'] = array(
'rule' => 'notEmpty',
'message' => 'Please enter a phone number so can can contact you with any questions about the work.',
'allowEmpty' => false,
'required' => true,
);
$validationErrors = array();
$this->Proposal->Requestor->set( $this->data['Requestor'] ); # $this->data['Requestor']['phone_number'] only (no other requestor data)
if( !$this->Proposal->Requestor->validates( array( 'fieldList' => array( 'phone_number' ) ) ) ) {
$validationErrors['Requestor'] = $this->Proposal->Requestor->validationErrors;
}
Об ошибках не сообщается, даже если я оставлю поле номера телефона пустым.В этом случае единственная информация, которую я запрашиваю у пользователя, это его номер телефона, поэтому остальные данные Requestor
пусты, но я попытался объединить остальные пользовательские данные, и я получил тот же результат,Если я уберу опцию fieldList
, я получу сообщение об ошибке в другом поле, но все еще ничего на пустом номере телефона.
Есть идеи, что мне здесь не хватает?Я уже несколько часов возился с этим и просто не нашел правильного ответа.
Спасибо.