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; }
/** * Set the request object to be validated * @param RequestInterface $request */ public function getValidator(RequestInterface $request) { $validator = new Validator(); $requestData = $request->getValidationData(); foreach ($request->getValidationData() as $propertyName => $rules) { foreach ($rules as $rule) { $ruleName = $rule['name']; $ruleOptions = empty($rule['value']) ? null : $rule['value']; $ruleMessage = empty($rule['message']) ? null : $rule['message']; if ($ruleName == "Regex") { $ruleOptions = array('pattern' => $rule['value']); } if ($ruleName == "Callback") { $ruleOptions = array('callback' => $rule['value']); } $validator->add($propertyName, $ruleName, $ruleOptions, $ruleMessage); } } $this->validator = $validator; $this->request = $request; return $this; }
/** * @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); }