Динамическое создание поля типа выбора в Symfony 3 - PullRequest
0 голосов
/ 07 марта 2019

Я совсем новичок в Symfony, и я ищу способ динамически создать поле выбора типа в форме.

На самом деле у меня есть несколько продуктов, которые я получаю с помощью query_builder в моей форме. После представления продукта и цены я хочу выбрать раскрывающийся список, чтобы пользователь мог выбрать количество продуктов для получения.

На самом деле, в форме моего конструктора я выбираю продукты благодаря конструктору запросов и получаю +/- 30 продуктов, но это число может измениться.

Проблема в том, что я хочу столько же выпадающих, сколько продуктов, до сих пор мой конструктор выглядит так:

        return $builder
        ->add('price', EntityType::class ,[
            'class'=> Price::class,
            'query_builder' => function (PriceRepository $pr) use ($goldenOptions, $currentCompany){
                return $pr->getPrice($goldenOptions, $currentCompany->getOrder()->getCompanyType(),  $currentCompany->getOnboardingRevenues(), true);
            },
            'expanded'=>true,
            'multiple'=>true,
            'placeholder'=>true 
        ])
        ->add('quantity',ChoiceType::class,[
            'choices'=>['mensuel'=>true,'trimestriel'=>false,'1'=>1,'2'=>2,'3'=>3,'4'=>4],
            'expanded'=>false,
            'multiple'=>false
        ])
        ->add('submit', SubmitType::class,[
            'attr' => ['class' => 'save'],
            'label'=>'Sauvegarder',
            'attr' => ['class' => 'btn btn-purple btn-rounded']
        ])

проблема в том, что таким образом я получаю только 1 выпадающий список, и я хочу несколько. Мне удалось воспроизвести его с помощью JavaScript, но когда я обрабатываю запрос и получаю из него данные, Symfony распознает только первое поле «количество».

Если кто-нибудь, как идеи о том, как я могу создать несколько полей 'количество', и Symfony признал их спасибо. Может быть, слушатель событий, но я понятия не имею, как я могу это сделать.

1 Ответ

0 голосов
/ 07 марта 2019

Я предполагаю, что это для какого-то приложения электронной коммерции, где у вас есть корзина с продуктами и вы хотите выбрать количество.

У меня был бы объект для "Корзины", который содержит много "CartProduct ", каждый из которых имеет один" Продукт "в качестве отношения и другие атрибуты для количества и т. Д.

При этом у вас может быть CartForm, который встраивает любое количество CartProductForm с количеством и т. Д. Для каждого.

То же, что и в примере с документами, где «Задача» будет «Корзина», а «Теги» будет «CartProducts»: https://symfony.com/doc/current/form/form_collections.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...