public function validate($rules = null) { $validator = new Validator(); foreach ($this->rules as $rule) { $fields = explode(',', str_replace(' ', '', $rule[0])); foreach ($fields as $field) { count($rule) == 4 ? $validator->add($field, $rule[1], $rule[2], \I18n::translate($rule[3]), $this->label($field)) : $validator->add($field, $rule[1], [], \I18n::translate($rule[2]), $this->label($field)); } } if (!$validator->validate($this->getAttributes())) { $messages = $validator->getMessages(); foreach ($messages as $message) { foreach ($message as $error) { $this->errors[] = (string) $error; } } return false; } return true; }
/** * @param array $formData * @param array $rules * @param array $messages * * @return \App\Components\Validation\ValidatorInterface */ public function make(array $formData, array $rules, array $messages = array()) { $validator = new Validator(); foreach ($rules as $field => $rules) { if (!is_array($rules)) { $rules = array($rules => null); } foreach ($rules as $key => $value) { if (is_string($key)) { // real rule name $rule = $key; $options = $value; } else { // otherwise the key is not the rule name, but the value is. No options specified $rule = $value; $options = null; } $messages = isset($messages[$field]) && isset($messages[$field][$rule]) ? $messages[$field][$rule] : null; $validator->add($field, $rule, $options, $messages); } } $validator->validate($formData); return new SiriusValidatorAdapter($validator); }