Use regex lazy quantifier to match first occurrence in combined validation rules #4049
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.
Fix rules formatting to use regex lazy quantifier(
?
) so that only the first occurrence in combined validation rules is being matched for the prepend of array wildcard(*
) validation character to the column name.1️⃣ Why should it be added? What are the benefits of this change?
To fix the
Database connection [3] not configured.
error when using combined validation rules that contain more than 1 colon(:
).For example:
'required_with:mobile_no|nullable|unique:users,user_name|numeric'
After
RowValidator::formatRule()
call, the result becomes:'required_with:mobile_no|nullable|unique:*.users,user_name|numeric'
In Laravel validation,
unique:*.users
means specifying a custom database connection:https://laravel.com/docs/8.x/validation#rule-unique which is not the expected behaviour. Since no database connection is defined, the following error will be returned by Laravel validation:
This fix will output the expected format:
'required_with:*.mobile_no|nullable|unique:users,user_name|numeric'
The wildcard(
*
) character is added to the right place.Reported issues:
2️⃣ Does it contain multiple, unrelated changes? Please separate the PRs out.
No.
3️⃣ Does it include tests, if possible?
Not required.
4️⃣ Any drawbacks? Possible breaking changes?
No.
5️⃣ Mark the following tasks as done:
6️⃣ Thanks for contributing! 🙌
Welcome.