Php Symfony 3表单-什么是::类?名称在哪里?

Php Symfony 3表单-什么是::类?名称在哪里?,php,symfony,Php,Symfony,::类在Symfony 3表单中使用了什么 例如: ->add('task', TextType::class) <input id="appbundle_task_name" type="text" name="appbundle_task[name]"> 或 在哪里可以阅读有关方法的信息::class 在Symfony2中: public function getName() { return 'appbundle_task'; } 接下来我看到了前缀,例如:

::类在Symfony 3表单中使用了什么

例如:

->add('task', TextType::class)
<input id="appbundle_task_name" type="text" name="appbundle_task[name]">

在哪里可以阅读有关方法的信息::class

在Symfony2中:

public function getName()
{
    return 'appbundle_task';
}
接下来我看到了前缀,例如:

->add('task', TextType::class)
<input id="appbundle_task_name" type="text" name="appbundle_task[name]">


现在在输入中生成名称的原理是什么?

::class
用于类名解析。这样,您就可以获得类的完全限定名(FQCN)。你可以在报纸上看到

在symfony3之前,必须将类型实例直接传递给
FormBuilder::add
Form::add
FormFactory
。现在,您需要传递完全限定的类型类名,您可以使用
::class
来实现这一点

不再需要表单类型的
getName()
,因为它们现在由其FQCN标识。如果要自定义Twig中类型的块前缀,应添加
getBlockPrefix

public function getBlockPrefix()
{
    return 'appbundle_task';
}

谢谢,但是现在字段前缀没有名称空间。可以更改字段前缀吗?谢谢@Federkun!升级到symfonyv3+后,这修复了我的表单元素的id和name属性。