public function validate($options = array()) { $fieldsArray = $this->_model->getTable()->getFieldProperties(); $fieldOptions = array(); foreach ($fieldsArray as $fieldName => $fieldProperties) { $fieldOptions[$fieldName] = array_merge($fieldProperties, issetor($options[$fieldName], array())); } $valid = true; $errors = array(); $this->_initValidators($fieldOptions); foreach ($this->_model->getValidators() as $fieldName => $fieldValidators) { foreach ($fieldValidators as $fieldValidator) { /* @var $validator Ajde_Model_ValidatorAbstract */ $value = null; if ($this->_model->has($fieldName)) { $value = $this->_model->get($fieldName); } $result = $fieldValidator->validate($fieldOptions[$fieldName], $value); if ($result['valid'] === false) { if (!isset($errors[$fieldName])) { $errors[$fieldName] = array(); } $errors[$fieldName][] = $result['error']; $valid = false; } } } $this->_errors = $errors; return $valid; }
public function validate($options = array()) { $fieldsArray = $this->_model->getTable()->getFieldProperties(); $fieldOptions = array(); // Add all model fields foreach ($fieldsArray as $fieldName => $fieldProperties) { $fieldOptions[$fieldName] = array_merge($fieldProperties, isset($options[$fieldName]) ? $options[$fieldName] : array()); if (isset($options[$fieldName])) { unset($options[$fieldName]); } } // Add all non-model fields foreach ($options as $fieldName => $fieldProperties) { $fieldOptions[$fieldName] = $fieldProperties; } $valid = true; $errors = array(); $this->_initValidators($fieldOptions); foreach ($this->_model->getValidators() as $fieldName => $fieldValidators) { foreach ($fieldValidators as $fieldValidator) { /* @var $fieldValidator Ajde_Model_ValidatorAbstract */ $value = null; if ($this->_model->has($fieldName)) { $value = $this->_model->get($fieldName); if (is_array($value)) { $value = implode(',', $value); } else { $value = (string) $value; } } // Only validate when dynamic field is shown if ($this->shouldValidateDynamicField($fieldOptions[$fieldName])) { $result = $fieldValidator->validate($fieldOptions[$fieldName], $value); if ($result['valid'] === false) { if (!isset($errors[$fieldName])) { $errors[$fieldName] = array(); } $errors[$fieldName][] = $result['error']; $valid = false; } } } } $this->_errors = $errors; return $valid; }
public function setEntity(Ajde_Model $entity) { try { $unitprice = $entity->getUnitprice(); } catch (Exception $e) { // TODO: throw new Ajde_Exception("Entity {$entity} does not have a unitprice defined"); } $this->set('entity', $entity->getTable()); $this->set('entity_id', $entity); $this->set('unitprice', $unitprice); }