Symfony 3表单实体类型

时间:2016-03-11 11:43:15

标签: php forms class symfony entity

我有一个表单类作为(服务),我使用entity type来选择一篇文章。

在Symfony 2中,这有效:

$builder
    ->add('article', EntityType::class,
        array(
        'em' => $this->em,
        'class' => 'MyBundle\Entity\Article',
            'query_builder' => function ($em) {
                return $em->createQueryBuilder('a')
                ->where('a.active = 1');
            },
        'choice_label' => 'name')
    )

但是在Symfony3中我收到了错误: Neither the property "article" nor one of the methods ...

我的问题是文章没有属性article。当我将文章重命名为

->add('name', ...`

我如何将文章实体传递给表格?

1 个答案:

答案 0 :(得分:2)

在Symfony 3中,您需要使用完全限定的类名,而不是:

'class' => 'MyBundle\Entity\Article',

你需要使用:

'class' => \MyBundle\Entity\Article::class,

在书中阅读更多相关信息:http://symfony.com/doc/current/book/forms.html#building-the-form 也许您想要检查从Symfony 2升级到Symfony 3时需要更改的所有其他内容:https://github.com/symfony/symfony/blob/master/UPGRADE-3.0.md