首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >formBuilder -如何添加实体?

formBuilder -如何添加实体?
EN

Stack Overflow用户
提问于 2015-12-26 09:15:43
回答 1查看 407关注 0票数 0

我有两个班:班级和学生。每个班都有一个或多个学生。

在我的表单(创建学生)中,我想要一个包含所有可用类的滚动选择器来将我的学生放到一个类中。

我必须这样做:

代码语言:javascript
复制
/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name')
        ->add('classe', 'entity', array(
            'required' => true,
            'class' => 'MyCoolBundle:Classe',
            'query_builder' => function(ClasseRepository $cr) {
                return $cr->createQueryBuilder('c')
                    ->orderBy('c.name', 'ASC');
            }))
    ;
}

但结果是:

代码语言:javascript
复制
Could not load type "entity"
500 Internal Server Error - InvalidArgumentException
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-26 15:36:45

在文档之后,您必须重写字段类型:

从医生中提取

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

$builder->add('users', EntityType::class, array(
    'class' => 'AppBundle:User',
    'choice_label' => 'username',
));

所以我觉得你应该试试这样的方法:

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

$builder
    ->add('name')
    ->add('classe', EntityType::class, array(
        'required' => true,
        'class' => 'MyCoolBundle:Classe',
        'query_builder' => function(ClasseRepository $cr) {
            return $cr->createQueryBuilder('c')
                ->orderBy('c.name', 'ASC');
        }))
;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34469986

复制
相关文章

相似问题

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