GUMP::get_errors_array PHP Method

get_errors_array() public method

Process the validation errors and return an array of errors with field names as keys.
public get_errors_array ( $convert_to_string = null ) : array | null
$convert_to_string
return array | null | null (if empty)
    public function get_errors_array($convert_to_string = null)
    {
        if (empty($this->errors)) {
            return $convert_to_string ? null : array();
        }
        $resp = array();
        foreach ($this->errors as $e) {
            $field = ucwords(str_replace(array('_', '-'), chr(32), $e['field']));
            $param = $e['param'];
            // Let's fetch explicit field names if they exist
            if (array_key_exists($e['field'], self::$fields)) {
                $field = self::$fields[$e['field']];
            }
            switch ($e['rule']) {
                case 'mismatch':
                    $resp[$field] = "There is no validation rule for {$field}";
                    break;
                case 'validate_required':
                    $resp[$field] = "The {$field} field is required";
                    break;
                case 'validate_valid_email':
                    $resp[$field] = "The {$field} field is required to be a valid email address";
                    break;
                case 'validate_max_len':
                    $resp[$field] = "The {$field} field needs to be {$param} or shorter in length";
                    break;
                case 'validate_min_len':
                    $resp[$field] = "The {$field} field needs to be {$param} or longer in length";
                    break;
                case 'validate_exact_len':
                    $resp[$field] = "The {$field} field needs to be exactly {$param} characters in length";
                    break;
                case 'validate_alpha':
                    $resp[$field] = "The {$field} field may only contain alpha characters(a-z)";
                    break;
                case 'validate_alpha_numeric':
                    $resp[$field] = "The {$field} field may only contain alpha-numeric characters";
                    break;
                case 'validate_alpha_dash':
                    $resp[$field] = "The {$field} field may only contain alpha characters & dashes";
                    break;
                case 'validate_numeric':
                    $resp[$field] = "The {$field} field may only contain numeric characters";
                    break;
                case 'validate_integer':
                    $resp[$field] = "The {$field} field may only contain a numeric value";
                    break;
                case 'validate_boolean':
                    $resp[$field] = "The {$field} field may only contain a true or false value";
                    break;
                case 'validate_float':
                    $resp[$field] = "The {$field} field may only contain a float value";
                    break;
                case 'validate_valid_url':
                    $resp[$field] = "The {$field} field is required to be a valid URL";
                    break;
                case 'validate_url_exists':
                    $resp[$field] = "The {$field} URL does not exist";
                    break;
                case 'validate_valid_ip':
                    $resp[$field] = "The {$field} field needs to contain a valid IP address";
                    break;
                case 'validate_valid_cc':
                    $resp[$field] = "The {$field} field needs to contain a valid credit card number";
                    break;
                case 'validate_valid_name':
                    $resp[$field] = "The {$field} field needs to contain a valid human name";
                    break;
                case 'validate_contains':
                    $resp[$field] = "The {$field} field needs to contain one of these values: " . implode(', ', $param);
                    break;
                case 'validate_contains_list':
                    $resp[$field] = "The {$field} field needs to contain a value from its drop down list";
                    break;
                case 'validate_doesnt_contain_list':
                    $resp[$field] = "The {$field} field contains a value that is not accepted";
                    break;
                case 'validate_street_address':
                    $resp[$field] = "The {$field} field needs to be a valid street address";
                    break;
                case 'validate_date':
                    $resp[$field] = "The {$field} field needs to be a valid date";
                    break;
                case 'validate_min_numeric':
                    $resp[$field] = "The {$field} field needs to be a numeric value, equal to, or higher than {$param}";
                    break;
                case 'validate_max_numeric':
                    $resp[$field] = "The {$field} field needs to be a numeric value, equal to, or lower than {$param}";
                    break;
                case 'validate_min_age':
                    $resp[$field] = "The {$field} field needs to have an age greater than or equal to {$param}";
                    break;
                default:
                    $resp[$field] = "The {$field} field is invalid";
            }
        }
        return $resp;
    }

Usage Example

 public static function validate(\RedBeanPHP\OODBBean $bean)
 {
     $data = $bean->export();
     $model = $bean->box() !== null ? $bean->box() : null;
     if (!$model) {
         throw new ModelValidation_Exception('This bean does not have a model!');
     }
     $rules = isset($model::$rules) ? $model::$rules : null;
     if (!$rules) {
         throw new ModelValidation_Exception('This bean does not have any established rules!');
     }
     $validations = [];
     $filters = [];
     $labels = [];
     $messages = [];
     foreach ($rules as $field => $rule) {
         if (isset($rule['filter'])) {
             $filters[$field] = $rule['filter'];
         }
         if (isset($rule['label'])) {
             $labels[$field] = $rule['label'];
         }
         if (isset($rule['validation'])) {
             $validations[$field] = $rule['validation'];
         }
         if (isset($rule['message'])) {
             $field = isset($rule['label']) ? $rule['label'] : ucwords(str_replace(array('_', '-'), chr(32), $field));
             $messages[$field] = $rule['message'];
         }
     }
     $gump = new \GUMP();
     if (!empty($filters)) {
         $gump->filter_rules($filters);
     }
     if (!empty($validations)) {
         $gump->validation_rules($validations);
     }
     if (!empty($labels)) {
         $gump->set_field_names($labels);
     }
     $validated_data = $gump->run($data);
     if ($validated_data === false) {
         return self::default2custom_errors($gump->get_errors_array(), $messages);
     } else {
         $bean->import($validated_data);
         return true;
     }
 }
All Usage Examples Of GUMP::get_errors_array