首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony3:表单:使用相关的模型条目填充select

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

Stack Overflow用户
提问于 2016-02-24 13:04:53
回答 1查看 562关注 0票数 0

我有两个模型,topicuser。这两种关系都是由多对一的关系(仅由一个用户定义的主题)关联的,例如:

代码语言:javascript
复制
class User
{
    private $idUser;
    private $username;
}


class Topic
{
    private $idTopic;
    private $topicName;

    private $idUser;
}

MAIN关注点:我希望(使用symfony-forms)为主题模型创建一个创建表单。该表格将包括:

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

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

代码语言:javascript
复制
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上下文中的实体管理器,我如何检索用户列表并填充这些选择?
  • 在调用$users方法时,可以将控制器中的一个createForm数组作为参数传递吗?如果是,怎么做?
  • 如果你明白我想做什么,有没有更好/更简单的方法来完成它?我漏掉了什么吗?

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

任何帮助都将不胜感激。祝大家今天愉快。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-26 02:29:27

您应该尝试这样的方法(您必须修改代码):

代码语言:javascript
复制
  ->add('User', EntityType::class, array(
    'class'    => 'xxxBundle\Entity\User',
    'choice_label' => 'username',
    'required' => true,
    'multiple' => false,
  ))

不要忘记:

代码语言:javascript
复制
use Symfony\Bridge\Doctrine\Form\Type\EntityType;

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35603026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档