【发布时间】:2021-10-14 19:33:34
【问题描述】:
我正在使用 Easy Admin 的 FormBuilder 构建一个表单。我的目标是拥有一个代表OneToMany 关系的AssociationField,例如,将多个产品分配给一个商店。另外,我只想列出一些过滤后的产品,所以我覆盖了CrudController中的createEditFormBuilder方法,我使用this question作为参考,这是覆盖函数的代码:
public function createEditFormBuilder(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormBuilderInterface
{
$formBuilder = parent::createEditFormBuilder($entityDto, $formOptions, $context);
$filteredProducts = $context->getEntity()->getInstance()->getFilteredProducts();
$formBuilder->add('products', EntityType::class, ['class' => 'App\Entity\Product', 'choices' => $filteredProducts, 'multiple' => true]);
return $formBuilder;
}
我希望关联字段与 configureFields() 函数中配置的字段相同,但是显示的字段不允许文本搜索或自动完成功能,而且高度不正确。
预期:
实际:
我尝试更改 $formBuilder->Add() 函数中的第二个参数,但所有特定的 EasyAdmin 类型都抛出错误。
更新:我也尝试使用 EasyAdmin 的 CrudFormType 而不是 EntityType,它不支持 'choice' 参数。结果还是一样。
【问题讨论】:
标签: symfony easyadmin easyadmin3