繁体   English   中英

Symfony3:形式:使用相关模型条目填充选择

[英]Symfony3: form: populate select with related model entries

我有两个模型, topicuser 两者都通过多对一关系(一个主题仅由一个用户定义)关联,例如:

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


class Topic
{
    private $idTopic;
    private $topicName;

    private $idUser;
}

主要关注点 :我想(使用symfony形式)为主题模型创建一个创建形式。 该表格将包含:

  1. 主题名称 输入
  2. 用户 选择 (由数据库中现有用户填充的列表。显示的值当然是用户名)。

我创建了一个TopicType类,它将构建主题创建表单:

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'
    ));
    }

}
  • 考虑到我无法在TopicType上下文中访问实体管理器 ,我如何检索用户列表并填充选择?
  • 调用createForm方法时,可以在控制器中传递$users数组作为参数吗? 如果是这样,怎么办?
  • 如果您了解我正在尝试做的事情,是否有更好/更简单的方法来完成它? 我想念什么吗?

我知道这个问题看起来很相似,但是我在相关主题中找到的所有解决方案在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM