Как визуализировать динамическую c symfony форму? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть symfony 5.

класс FoodType имеет список флажков соуса

->add('sauces', EntityType::class, [
                'class' => Sauce::class,
                'expanded' => true,
                'multiple' => true,
 ])

У объекта соуса есть нужный метод .

public function getAvailability(): bool
{
    return $this->availability;
}

контроллер создайте форму и передайте ее пруту.

$form = $this->createForm(FoodType::class, $food);

прутик файл

{{ form(form) }}

Как я могу реализовать что-то подобное?

псевдокод

foreach($sauces as $sauce)
{
   if($sauce->getAvailability())
   {
     //show the sauce checkbox
   }
   else
   {
     //skip (hide) the checkbox
   }
}

То есть я хотел бы отображать только те флажки соуса, которые доступны.

Есть идеи?

1 Ответ

0 голосов
/ 18 февраля 2020

Решение очень простое.

класс FoodType

->add('sauces', EntityType::class, [
                'class' => Sauce::class,
                'expanded' => true,
                'multiple' => true,

                'query_builder' => function (SauceRepository $sauceRepository) {
                    return $sauceRepository->createQueryBuilder('s')
                        ->andWhere('s.availability = 1');
                }

            ])
...