如何在 EasyAdmin 中实现自动完成动态 ChoiceField?

问题描述 投票:0回答:1

我正在使用 EasyAdmin 开发一个项目。 对于一个功能,我需要实现:

  1. 具有自动完成配置的选择字段
  2. 该字段选项应基于实体加载
  3. AssociationField
    不起作用,因为我需要一个非映射字段
php symfony easyadmin
1个回答
0
投票

经过深入搜索和多次尝试,我得到了正确的解决方案,它本地连接到自动完成字段并添加一些基本属性。

示例: 我有一个名为 User 的实体,我希望在 HelloWorldCrudController 中有一个包含用户名称列表的 ChoiceField:

$userUrl = $this->container->get(AdminUrlGenerator::class)
    ->set('autocompleteContext', array(
        'crudControllerFqcn' => HelloWorldCrudController::class,
        'propertyName' => 'garage',
        'originatingPage' => Action::INDEX,
    ))
    ->setController(UserCrudController::class)
    ->setAction('autocomplete')
    ->set('page', 1);


$userChoiceField = ChoiceField::new('user', 'User')
    ->setFormType(EntityType::class)
    ->setFormTypeOption('class', User::class)
    ->autocomplete()
    ->setFormTypeOption('attr.data-ea-autocomplete-endpoint-url', $userUrl)
   ;
© www.soinside.com 2019 - 2024. All rights reserved.