Skip to content

Commit 15a4044

Browse files
Add the ability to add messages to validations
1 parent 700c7fd commit 15a4044

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

src/Form.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,21 @@ public function getFieldStackFromField(Field $field)
6363
public function validation($stack = null, $skipChecks = false): array
6464
{
6565
$rules = collect([]);
66+
$messages = collect([]);
6667
$fields = $stack ?? collect($this->fieldStack());
6768

68-
$fields->each(function (Field $value) use (&$rules, $skipChecks) {
69+
$fields->each(function (Field $value) use (&$rules, &$messages, $skipChecks) {
6970
if ($skipChecks || $value->conditionalCheck()) {
70-
if ($value->containsFile) {
71-
$rules->put('files.' . $value->getName(), $value->rules ?? '');
72-
} else {
73-
$rules->put('fields.' . $value->getName(), $value->rules ?? '');
74-
}
71+
$target = ($value->containsFile ? 'files' : 'fields');
72+
$rules->put($target . '.' . $value->getName(), $value->rules ?? '');
73+
$messages->put($target . '.' . $value->getName(), $value->validationMessages ?? '');
7574
}
7675
});
7776

78-
return $rules->toArray();
77+
return [
78+
'rules' => $rules->toArray(),
79+
'messages' => $messages->filter()->toArray(),
80+
];
7981
}
8082

8183
public function stepValidation($step): array

src/FormController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class FormController extends Component
2828
public array $syncs = [];
2929
public array $flashes = [];
3030

31+
protected array $messages = [];
3132
protected null | Form $form = null;
3233
protected array $fieldStack = [];
3334

@@ -99,7 +100,10 @@ public function setFields($doCheck = true)
99100
// Get and set the validation rules
100101
public function setValidation()
101102
{
102-
$this->validation = $this->getForm()->validation();
103+
$validation = $this->getForm()->validation();
104+
105+
$this->validation = $validation['rules'] ?? [];
106+
$this->messages = $validation['messages'] ?? [];
103107
}
104108

105109
public function getForm()

src/Traits/HandleSteps.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ public function goToStep($index)
2727
public function validateStep($step = null)
2828
{
2929
$validation = $this->getForm()->stepValidation($step ?? $this->step);
30-
$this->validate($this->parseNamespaceRules($validation));
30+
31+
$this->validate(
32+
$this->parseNamespaceRules($validation['rules']),
33+
$validation['messages'],
34+
);
3135
}
3236
}

0 commit comments

Comments
 (0)