在 EasyAdmin 中使用 autocomplete() 时如何设置 AssociationField 选择标签 3.x
How to set the AssociationField choice label when using autocomplete() with EasyAdmin 3.x
在 EasyAdmin EntityCrudController 的 AssociationField 上使用自动完成方法时,是否可以使用关联实体的 属性 作为选择标签,而不是关联的实体 ID?
示例:
我有 3 个具有以下属性的实体:
User
name
Certification
name
UserCertification
User
Certification
我的 UserCertificationCrudController 中有以下内容:
public function configureFields(string $pageName): iterable
{
return [
AssociationField::new('user')
->autocomplete(),
AssociationField::new('memberCertification')
->autocomplete(),
'lastRenewed',
'expiration',
];
}
新建UserCertification
时请看下面的截图:
The autocomplete value is a reference to the respective Entity ID。我们如何将 User#
替换为用户的名称 属性?
我已经尝试过但没有成功的事情:
- 使用 ChoiceField 并将 'class' 和 'choice_label' 提供给
ChoiceField->setFormTypeOptions()
方法,以及 UserRepository->FindAll()
的结果提供给 ChoiceField->setChoices()
方法
- 将 'class' 和 'choice_label' 提供给
AssociationField->setFormTypeOptions()
方法
你尝试制作实体的__toString()
方法吗?
在 EasyAdmin EntityCrudController 的 AssociationField 上使用自动完成方法时,是否可以使用关联实体的 属性 作为选择标签,而不是关联的实体 ID?
示例:
我有 3 个具有以下属性的实体:
User
name
Certification
name
UserCertification
User
Certification
我的 UserCertificationCrudController 中有以下内容:
public function configureFields(string $pageName): iterable
{
return [
AssociationField::new('user')
->autocomplete(),
AssociationField::new('memberCertification')
->autocomplete(),
'lastRenewed',
'expiration',
];
}
新建UserCertification
时请看下面的截图:
The autocomplete value is a reference to the respective Entity ID。我们如何将 User#
替换为用户的名称 属性?
我已经尝试过但没有成功的事情:
- 使用 ChoiceField 并将 'class' 和 'choice_label' 提供给
ChoiceField->setFormTypeOptions()
方法,以及UserRepository->FindAll()
的结果提供给ChoiceField->setChoices()
方法 - 将 'class' 和 'choice_label' 提供给
AssociationField->setFormTypeOptions()
方法
你尝试制作实体的__toString()
方法吗?