Skip to content

Commit

Permalink
documenting choice_lazy option
Browse files Browse the repository at this point in the history
  • Loading branch information
yceruto committed Oct 14, 2024
1 parent 52d4f7b commit e55e7cd
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
2 changes: 2 additions & 0 deletions reference/forms/types/choice.rst
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@ correct types will be assigned to the model.

.. include:: /reference/forms/types/options/choice_loader.rst.inc

.. include:: /reference/forms/types/options/choice_lazy.rst.inc

.. include:: /reference/forms/types/options/choice_name.rst.inc

.. include:: /reference/forms/types/options/choice_translation_domain_enabled.rst.inc
Expand Down
31 changes: 31 additions & 0 deletions reference/forms/types/options/choice_lazy.rst.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
``choice_lazy``
~~~~~~~~~~~~~~~

**type**: ``boolean`` **default**: ``false``

The ``choice_lazy`` option is especially useful when dealing with a large set of
choices, where loading all of them at once could lead to performance issues or
significant delays::

use App\Entity\User;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;

$builder->add('user', EntityType::class, [
'class' => User::class,
'choice_lazy' => true,
]);

When set to ``true``, and used in combination with the ``choice_loader`` option,
the form will only load and render the choices that are preset as default values
or submitted. This allows you to defer loading the full list of choices and can
improve the performance of your form.

.. caution::

Please note that when using ``choice_lazy``, you are responsible for providing
the user interface to select choices, typically through a JavaScript plugin that
can handle the dynamic loading of choices.

.. versionadded:: 7.2

The ``choice_lazy`` option was introduced in Symfony 7.2.

0 comments on commit e55e7cd

Please # to comment.