如何呈现动态symfony形式?

问题描述 投票:-1回答:1

我有symfony 5。

类别FoodType带有酱汁复选框列表

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

调味品实体具有所需的方法。

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

controller创建表单并将其传递给树枝。

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

Twig文件

{{ form(form) }}

我如何实现这样的功能?

伪代码

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

也就是说,我只想显示那些可用的调味酱复选框。

任何想法?

symfony symfony-forms
1个回答
0
投票

解决方案非常简单。

class 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');
                }

            ])
© www.soinside.com 2019 - 2024. All rights reserved.