public function validate(Http_Request $request) { /* Выполняем базовую проверку */ $result = parent::validate($request, $user); /* Если пароль прошёл проверку, то проверяем оба поля пароля на совпадение */ if (!$this->hasError('passwd') && $this->passwd->value !== $this->passwd_check->value) { $this->setValidationError('passwd', 'Пароли должны совпадать'); $result = false; } if ($this->hasError('passwd')) { $this->setValue('passwd', ''); $this->setValue('passwd_check', ''); } if (false === $result) { return false; } return $result; }
public function validate(Http_Request $request, Model_Region $region, Model_Locality $locality) { $result = parent::validate($request); $result &= $this->_validateRegionId('region_id', $region, 'Выберите регион из списка'); $result &= $this->_validateCityId('city_id', $locality, 'Выберите город из списка'); $result &= $this->_validateOptionalField('flat', '/^[0-9]+$/ixu', 'Укажите номер квартиры (целое число)'); $regex = sprintf('/^(%s|%s|%s)$/xu', Model_User::DOC_TYPE_DIPLOMA_HIGH, Model_User::DOC_TYPE_DIPLOMA_MEDIUM, Model_User::DOC_TYPE_CUSTOM); $result &= $this->_validateEduDocType('doc_type', $regex, 'Выберите вид документа или оставьте поле пустым'); $doc_type = $this->doc_type->value; if (Model_User::DOC_TYPE_EMPTY !== $doc_type) { if (Model_User::DOC_TYPE_CUSTOM == $doc_type) { $result &= $this->_validateManual('doc_custom_type', self::REGEX_SYMBOLIC, 'Введите вид документа'); } $result &= $this->_validateManual('doc_number', '/^[0-9а-яёa-z-_]+$/ixu', 'Введите номер документа'); $result &= $this->_validateManual('exit_year', '/^[0-9]{4}$/ixu', 'Введите год окончания в формате гггг'); $result &= $this->_validateManual('speciality', self::REGEX_SYMBOLIC, 'Введите специальность'); $result &= $this->_validateManual('qualification', self::REGEX_SYMBOLIC, 'Введите квалификацию'); } $result &= $this->_validateOptionalField('phone_mobile', '/^\\+7[\\s]+\\([0-9]{3}\\)[\\s]+[0-9]{3}-[0-9]{2}-[0-9]{2}$/ixu', 'Введите номер мобильного в формате +7 (xxx) xxx-xx-xx'); $result &= $this->_validateOptionalField('phone_stationary', '/^[0-9-]+$/ixu', 'Введите номер телефона'); return $result; }