/** * Validate entity model. * * @param array &$data Data to validate. * @param AbstractElement $element Element object. * * @return bool */ protected function _validateElement(&$data, $element) { $isValid = true; if ($element->isIgnored()) { return $isValid; } // Filter data. if (!empty($this->_filters[$element->getName()])) { foreach ($this->_filters[$element->getName()] as $filter) { $data[$element->getName()] = $this->getDI()->get('filter')->sanitize($data[$element->getName()], $filter); } } // Check field requirement. if ($element->getOption('required')) { if (!isset($data[$element->getName()])) { $isValid = false; $this->addError(sprintf($this->_(self::MESSAGE_FIELD_IS_REQUIRED), $this->_($element->getOption('label'))), $element->getName()); } // Check that field can not be empty. if (!$element->getOption('emptyAllowed') && empty($data[$element->getName()])) { $isValid = false; $this->addError(sprintf($this->_(self::MESSAGE_FIELD_IS_EMPTY), $this->_($element->getOption('label'))), $element->getName()); } } /** * What data must have element, that was not sent to server? If used null as default - all will be null. */ if ($this->_useDefaultValue) { if (!isset($data[$element->getName()]) || $data[$element->getName()] == '') { $data[$element->getName()] = $element->getOption('defaultValue'); } } return $isValid; }