Skip to content

[13.x] Prevent loose comparisons in doesnt_contain validation rule - #61318

Merged
taylorotwell merged 1 commit into
laravel:13.xfrom
KIKOmanasijev:fix/doesnt-contain-strict-comparison
Aug 24, 2026
Merged

taylorotwell merged 1 commit into
laravel:13.xfrom
KIKOmanasijev:fix/doesnt-contain-strict-comparison

Conversation

@KIKOmanasijev

@KIKOmanasijev KIKOmanasijev commented Aug 24, 2026 •

Copy link
Copy Markdown
Contributor

The doesnt_contain validation rule currently checks prohibited values with a loose in_array() comparison, so ["0e123"] is treated as if it contains the prohibited value "0" and validation fails.

#61146 fixed the same numeric-string comparison issue for the in rule by enabling strict comparison. This applies that narrowly to validateDoesntContain() and adds regression coverage proving "0e123" passes while an exact "0" still fails. No other validation rules are changed.

@github-actions

Copy link
Copy Markdown

Thanks for submitting a PR!

Note that draft PRs are not reviewed. If you would like a review, please mark your pull request as ready for review in the GitHub user interface.

Pull requests that are abandoned in draft may be closed due to inactivity.

@KIKOmanasijev
KIKOmanasijev marked this pull request as ready for review August 24, 2026 18:04
@KIKOmanasijev
KIKOmanasijev marked this pull request as draft August 24, 2026 18:06
@KIKOmanasijev
KIKOmanasijev marked this pull request as ready for review August 24, 2026 21:30
@taylorotwell
taylorotwell merged commit 0e554c0 into laravel:13.x Aug 24, 2026
111 checks passed
binaryfire added a commit to hypervel/components-backup that referenced this pull request Oct 1, 2026
Compare in_array and doesnt_contain values strictly and document their type-sensitive behavior. Retain contains behavior from the current upstream target.

Port the remaining scalar in-rule cases, remove its obsolete documented difference, and consolidate contains/doesnt_contain tests under upstream file names. Preserve distinct existing assertions while restoring missing rule-formatting cases and adding strict-membership coverage. The validation suite and analysis pass.

Upstream:
laravel/framework#61146
laravel/framework#61315
laravel/framework#61319
laravel/framework#61318

Source: laravel/framework master 7068848dfe48fc3a433598e09ce798799d442a52.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants