Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

[3.0] [Form] Inconsistency between isValid() and the "valid" template variable #7737

Copy link
Copy link
Closed
@webmozart

Description

@webmozart
Issue body actions

I'm calling out for you to decide how to resolve the inconsistency between the Form::isValid() method and the valid variable available in the template:

  • isValid() returns false if a form was not submitted. This way it is possible to write concise controller code:
$form = $this->createForm(...);
$form->handleRequest($request);

if ($form->isValid()) {
    // only executed if the form is submitted AND valid
}
  • valid contains true if a form was not submitted. This way it is possible to rely on this variable for error styling of a form.
<div{% if not form.vars.valid %} class="error"{% endif %}>

We have two alternatives for resolving this problem:

  1. Leave the inconsistency as is.
  2. Make isValid() return true if a form was not submitted (consistent with valid)
  3. Revert to the 2.2 behavior of throwing an exception if isValid() is called on a non-submitted form (not consistent with valid).

Both 2. and 3. will require additional code in the controller:

$form = $this->createForm(...);
$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    // only executed if the form is submitted AND valid
}

What do you think?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.