[10.x] Fix validation of attributes that depend on previous excluded attribute #47622
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When using a validation rule that depends on another attribute, e.g.
required_if
, and that other attribute had appliedexclude
rule, then the order in$rules
matters. If the excluded attribute comes first, it is already excluded during theValidator::passes()
run, before therequire_if
rule can check that attributes value.Of my understanding, the rule order should not matter, so the following rules should give us the same validation:
I have tested this with the following PEST test:
expected:
but the actual result is:
Can this considered to be a bug or is there some logic behind it? with my fix in this PR,
phpunit tests/Validation/
framework tests on latest 10.x still run through nicely.