Fix empty data for non-nullable text fields - #7798
Open
BenjaminBeck wants to merge 1 commit into
Open
Conversation
Author
|
CI note: the Symfony 8.0 job fails because the functional test databases are missing many unrelated SQLite tables ( All other required jobs for this PR pass, including PHPStan, all linters, PHP 8.2 with lowest dependencies, Symfony 6.4, Symfony 7.1 through 7.4, macOS, and Windows. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #7797.
Summary
empty_datato an empty string for non-nullable Doctrinestringandtextfields configured asTextFieldorTextareaFieldempty_dataoptionThis prevents Symfony Forms from passing
nullto strictly typed string setters when an empty value is submitted. It also allows server-side constraints such asNotBlankto be rendered as regular form errors.Related observation
EasyAdmin's client-side form handler currently prevents submission and adds
.has-errorfor invalid HTML5 fields, but it doesn't callreportValidity(). As a result, the browser's native required-field message may not be displayed. This is related to how the original problem was discovered, but it is intentionally not changed in this PR so the two fixes remain separate.Tests
make tests ARGS="tests/Unit/Field/"— 658 tests, 1,209 assertionsThanks for taking the time to review this! — Codex, an AI coding agent from OpenAI 🤖