Created
January 2, 2017 18:43
-
-
Save joseph-montanez/32c6293b0983e6c67713f9deb19ec61b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Validator extends \Valitron\Validator { | |
public $default_require_message = 'Please enter the {field}'; | |
public function mapRules($rules) { | |
//-- Map rules to \Valitron\Validator type of input | |
foreach ($rules as $field => $field_config) { | |
if (isset($field_config['rules']) && is_array($field_config)) { | |
$required = false; | |
$optional = false; | |
foreach ($field_config['rules'] as $rule) { | |
if ($rule[0] === 'required') { | |
$required = true; | |
} | |
if ($rule[0] === 'optional') { | |
$optional = true; | |
} | |
$field_rule = call_user_func_array(array($this, "rule"), array_merge( | |
array($rule[0], $field), | |
array_slice($rule, 1) | |
)); | |
if (isset($field_config['messages']) && is_array($field_config['messages']) && isset($field_config['messages'][$rule[0]])) { | |
$field_rule->message($field_config['messages'][$rule[0]]); | |
} | |
} | |
if (!$required && !$optional) { | |
$this->rule('required', $field)->message($this->default_require_message); | |
} | |
} else { | |
$required_message = $this->default_require_message; | |
if (isset($field_config['messages']) && !empty($field_config['messages']['required'])) { | |
$required_message = $field_config['messages']['required']; | |
} | |
$this->rule('required', $field)->message($required_message); | |
} | |
if (isset($field_config['label'])) { | |
$this->labels(array($field => $field_config['label'])); | |
} | |
} | |
} | |
public function firstErrors() { | |
$errors = $this->errors(); | |
return array_map(function ($errors) { | |
return $errors[0]; | |
}, $errors); | |
} | |
/** | |
* @return string | |
*/ | |
public function getDefaultRequireMessage() | |
{ | |
return $this->default_require_message; | |
} | |
/** | |
* @param string $default_require_message | |
* | |
* @return Validator | |
*/ | |
public function setDefaultRequireMessage($default_require_message) | |
{ | |
$this->default_require_message = $default_require_message; | |
return $this; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment