Example #1
0
 public function getErrorMessages()
 {
     $allMessages = $this->validator->messages()->getMessages();
     if (!$this->reportIlluminateErrors) {
         $availableErrorMessages = $this->form->bootErrorMessages();
         $plainMessages = [];
         foreach ($allMessages as $fieldName => $message) {
             $message = isset($availableErrorMessages[$fieldName]) ? $availableErrorMessages[$fieldName] : "{attribute} is not valid";
             $message = str_replace('{:attribute}', '{' . $fieldName . '}', $message);
             // array of 1 element for compatibility with Laravel's MessageBag
             $plainMessages[$fieldName] = [$message];
         }
         $allMessages = $plainMessages;
     }
     foreach ($allMessages as $fieldName => &$messages) {
         foreach ($messages as &$message) {
             $searchField = str_replace('_', ' ', $fieldName);
             $searchField = '{' . $searchField . '}';
             $element = $this->form->el($fieldName);
             /* @var $element Element */
             $replace = [$searchField => $element->label, '{value}' => htmlspecialchars($element->val(), ENT_NOQUOTES, 'UTF-8')];
             // for choice elements add option to output the text value of an option
             if ($element instanceof Choice) {
                 $replace['{valueText}'] = $element->valueText();
             }
             $message = str_replace(array_keys($replace), array_values($replace), $message);
         }
         $messages = implode(', ', $messages);
     }
     return $allMessages;
 }
Example #2
0
 /**
  * @param Form $form
  * @return bool
  */
 public function validateForm(Form $form)
 {
     $errors = [];
     $elements = $form->getElements();
     foreach ($elements as $element) {
         /* @var $element Element */
         if (isset($this->rules[$element->name])) {
             $respect = $this->rules[$element->name];
             if (!$respect->validate($element->val())) {
                 $errors[$element->name] = true;
             }
         }
     }
     if ($errors) {
         $allErrorMessages = $form->bootErrorMessages();
         foreach ($errors as $field => &$error) {
             $label = $elements[$field]->label ?: $field;
             $error = isset($allErrorMessages[$field]) ? $allErrorMessages[$field] : "{$label} is not valid";
         }
     }
     $this->errorMessages = $errors;
     return empty($errors);
 }
 /**
  * Override this function to make a suitable validator
  * @param Form $form
  * @param array $data
  * @param array $rules
  * @param array $messages
  * @param array $customAttributes
  * @return \Illuminate\Validation\Validator
  */
 public function makeValidator(Form $form, array $data, array $rules, array $messages = array(), array $customAttributes = array())
 {
     $factory = $this->getValidationFactory();
     if (!$messages) {
         $messages = $form->bootErrorMessages();
     }
     return $factory->make($data, $rules, $messages, $customAttributes);
 }