コード例 #1
0
ファイル: AbstractForm.php プロジェクト: phalconeye/framework
 /**
  * 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;
 }