首页 > 解决方案 > (Symfony 4)从多选实体表单字段创建选择下拉列表

问题描述

我有一个 Symfony 表单类型类,如下所示:

class FeedFilterType extends AbstractType

{
 /**
 * @var UserProvider
 */
protected $userProvider;

/**
 * @var UserRepository $userRepository
 */
protected $userRepository;

public function __construct(UserProvider $userProvider, UserRepository $userRepository)
{
    $this->userProvider = $userProvider;
    $this->userRepository = $userRepository;
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('creators', EntityType::class, [
            'class' => User::class,
            'choices'  => $this->userRepository->getCreatorsSubscribedToByUser($this->userProvider->getCurrentUser()),
            'choice_label' => 'name',
            'required' => false,
            'multiple' => true,
            'expanded' => true
        ])
    ;
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array());
}

}

它可以正常工作,因为它带回了用户数组,但是当我将它添加到我的树枝时,例如:

{{ form_widget(feedFilterForm.creators) }}

这是它的样子:

在此处输入图像描述

我可以很容易地从生成的实体数组中手动​​构建一个选择下拉列表,但是 Symfony 是否有一个内置的 select DOM html 类型,它是由从表单中带回的实体数组产生的?

标签: formssymfonyselect

解决方案


推荐阅读