Exemple #1
0
 /**
  * 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;
 }