创建具有两个属性的 Symfony 表单下拉列表
Create a Symfony form drop-down list with two properties
我正在尝试制作一个带有使用两个属性的下拉列表的 Symfony 表单。
让我解释一下:
我有一个具有两个属性的 SparePart 实体:
/**
* @ORM\ManyToOne(targetEntity="CM\PlatformBundle\Entity\Supplier")
*/
private $supplier;
/**
* @ORM\ManyToOne(targetEntity="CM\PlatformBundle\Entity\SupplierGroup")
*/
private $supplierGroup;
我想让用户在一个直接供应商或一组供应商之间进行选择,如下所示:
- ----直接供应商----
- 米其林
- 大陆
- ----供应商组----
- 欧洲供应商
- 美国供应商
我不知道如何在表单生成器中处理这种情况。
您需要将表单定义为服务 (http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services) 并将实体管理器注入其中。
在构建表单之前,您查询存储库以获取供应商。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$suppliers = $this->em->repository->findAll();
//loop through your results to build an array
$builder
…
;
}
构建一个匹配此模式的数组
$arrSuppliers[$groupName] = array($supplierId => $supplierName);
然后您可以这样做来创建您的列表:
http://symfony.com/doc/current/reference/forms/types/choice.html#grouping-options
我正在尝试制作一个带有使用两个属性的下拉列表的 Symfony 表单。
让我解释一下: 我有一个具有两个属性的 SparePart 实体:
/**
* @ORM\ManyToOne(targetEntity="CM\PlatformBundle\Entity\Supplier")
*/
private $supplier;
/**
* @ORM\ManyToOne(targetEntity="CM\PlatformBundle\Entity\SupplierGroup")
*/
private $supplierGroup;
我想让用户在一个直接供应商或一组供应商之间进行选择,如下所示:
- ----直接供应商----
- 米其林
- 大陆
- ----供应商组----
- 欧洲供应商
- 美国供应商
我不知道如何在表单生成器中处理这种情况。
您需要将表单定义为服务 (http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services) 并将实体管理器注入其中。 在构建表单之前,您查询存储库以获取供应商。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$suppliers = $this->em->repository->findAll();
//loop through your results to build an array
$builder
…
;
}
构建一个匹配此模式的数组
$arrSuppliers[$groupName] = array($supplierId => $supplierName);
然后您可以这样做来创建您的列表:
http://symfony.com/doc/current/reference/forms/types/choice.html#grouping-options