Symfony2无法加载类型EntityType

时间:2015-12-05 18:04:17

标签: php symfony doctrine

当我尝试在Symfony2表单类型中创建EntityType字段时,我遇到了问题。

这是Symfony2手册中官方EntityType参考的一段代码:

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

...

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

回到浏览器我收到Could not load type "Symfony\Bridge\Doctrine\Form\Type\EntityType"错误。

EntityType类存在于给定的namespespace中。

我是否需要为此字段类型获取一些附加扩展名?

2 个答案:

答案 0 :(得分:10)

您使用的是什么版本的Symfony?

这个FooBarType::class是Symfony 2.8和3.x中的新功能,旧版本不支持它。尝试将EntityType::class替换为'entity',看看是否有效。当您升级到Symfony 2.8时,您可以使用FQCN,从3.x这将是唯一的选择。

答案 1 :(得分:7)

EntityType类不在常见的Type类文件夹(Symfony\Component\Form\Extension\Core\Type\)中,而是在Symfony\Bridge\Doctrine\Form\Type\

因此,如果您使用的是Symfony 3或Symfony 2.8以及EntityType::class语法,则必须使用

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