Symfony3:表单:使用相关模型条目填充 select

Symfony3: form: populate select with related model entries

我有两个模型,topicuser。两者之间是多对一的关系(一个话题只能由一个用户定义)如:

class User
{
    private $idUser;
    private $username;
}


class Topic
{
    private $idTopic;
    private $topicName;

    private $idUser;
}

主要问题:我想(使用 symfony-forms)为 topic 模型创建一个创建表单。该表格将包含:

  1. 一个题目名称输入
  2. a user select(由数据库中现有用户填充的列表。显示的值将是用户名当然)。

我创建了一个 TopicType class,它将构建 topic 创建表单:

class TopicType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->
            ->add('topicName')
            ->add(/* 'idUser', 'choice',  'THE USER LIST ???*/)
    }

    public function configureOptions(FormBuilderInterface $builder, array $options)
    {
        $resolver->setDefaults(array(
            'data_class' => 'AppBundle\Entity\Topic'
    ));
    }

}

我知道这个问题可能看起来很相似,但我在相关主题上找到的所有解决方案在 Symfony3

中都以某种方式被弃用

如有任何帮助,我们将不胜感激。 祝大家有个美好的一天。

你应该尝试这样的事情(你必须调整代码):

  ->add('User', EntityType::class, array(
    'class'    => 'xxxBundle\Entity\User',
    'choice_label' => 'username',
    'required' => true,
    'multiple' => false,
  ))

别忘了:

use Symfony\Bridge\Doctrine\Form\Type\EntityType;

更多信息在这里:http://symfony.com/doc/current/reference/forms/types/entity.html