当我尝试在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中。
我是否需要为此字段类型获取一些附加扩展名?
答案 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;