/** * Check first level data fields * TODO NotEmptyIfField case * * @param array $data * @param ModelAbstractValidate $validator * @return bool */ protected function _preValidate($data, \Application\Model\Validate\ModelAbstractValidate $validator, $fieldPrefix = '') { $modelValidators = $validator->getValidators(); if (!empty($modelValidators)) { foreach ($modelValidators as $field => $validators) { // Mandatory missing? if (!in_array($field, $this->_getCreateBlackList()) && (isset($validators['App_Validate_NotEmpty']) || isset($validators['Zend_Validate_NotEmpty'])) && $data[$field] === "") { throw new Application\Exceptions\InvalidArgumentException("Invalid parameter value: " . $fieldPrefix . $field); } if (!in_array($field, $this->_getCreateBlackList()) && isset($validators['App_Validate_NotEmptyIfField']) && !isset($data[$field]) && !$validators['App_Validate_NotEmptyIfField']->isValid(null, $data)) { throw new Application\Exceptions\MissingParameterException("Needed parameter was not found. " . $fieldPrefix . $field); } if (isset($data[$field])) { foreach ($validators as $validator) { if ($validator instanceof \Application\Model\Validate\ModelAbstractValidate) { $this->_preValidate($data[$field], $validator, $field . "."); } } } } } return true; }