symfony 如何在EasyAdmin 3.x中使用autocomplete()时设置AssociationField选项标签

nr7wwzry  于 2023-10-24  发布在  其他
关注(0)|答案(2)|浏览(114)

当在EasyAdmin中的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',
        ];
    }

在创建一个新的UserCertificationThe autocomplete value is a reference to the respective Entity ID时,请参见下面的屏幕截图。我们如何将User#替换为user上的name属性?
我已经尝试过,但没有成功:

  • 使用ChoiceField并向ChoiceField->setFormTypeOptions()方法提供“class”和“choice_label”,以及向ChoiceField->setChoices()方法提供UserRepository->FindAll()的结果
  • 将'class'和'choice_label'提供给AssociationField->setFormTypeOptions()方法
fjaof16o

fjaof16o1#

是否尝试mmake实体的__toString()方法?

8xiog9wr

8xiog9wr2#

AssociationField使用symfony类型,因此可以使用choice_label选项
范例:

->setFormTypeOption('choice_label', function($choice) { 
    return $choice->getName(). '#' . $choice->getId();
})

相关问题