我有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
}
}
也就是说,我只想显示那些可用的调味酱复选框。
任何想法?
解决方案非常简单。
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');
}
])