Новое в Symfony 3.2: Ленивая загрузка для полей выбора в формах

ChoiceType является самым мощным Symfony типом формы и используется для создания  раскрывающихся списков, радио-кнопок и флажков. В Symfony 3.2 мы добавили новую функцию, чтобы улучшить его характеристики: отложенной загрузки значений.

Во-первых, нужно определить choice_loader опции загрузчика для ChoiceType, а затем использовать новый класс CallbackChoiceLoader для установки PHP функции обратного вызова, чтобы получить список вариантов:

use Symfony\Component\Form\ChoiceList\Loader\CallbackChoiceLoader;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

$builder->add('constants', ChoiceType::class, [
    'choice_loader' => new CallbackChoiceLoader(function() {
            return StaticClass::getConstants();
    },
]);

Класс CallbackChoiceLoader реализует ChoiceLoaderInterface, который в настоящее время также реализуется в каждом подтипе ChoiceType, например CountryType, CurrencyType, LanguageType, LocaleType и TimezoneType.

Источник: https://symfony.com/blog/new-in-symfony-3-2-lazy-loading-of-form-choices

Добавить комментарий

Ваш адрес email не будет опубликован.

15 − четыре =