Symfony 2.7:无法加载类型 "SymfonyComponentFormExtensionCoreTypeTextType"



我正在开发一个基于Symfony 2.7的应用程序。我有一个包含以下代码的自定义表单类型:

namespace MyCompanyAppBundleForm;
use SymfonyComponentFormAbstractType;
use SymfonyComponentFormFormBuilderInterface;
use SymfonyComponentOptionsResolverOptionsResolver;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentValidatorConstraintsNotBlank;
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class,
[
'attr'=>
[
'placeholder' => 'Your name'
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name'])
]
]
)
;
}
...

。当我加载表单时,我得到以下无效参数异常:

无法加载类型 "Symfony\Component\Form\Extension\Core\Type\TextType">

我已经验证了 TextType 类是否存在。

我尝试使用作曲家转储,但它似乎没有帮助。此外,我尝试删除供应商目录并重做作曲家安装,这也无济于事。

我还能尝试什么?

你不能使用完全限定的类名来表示 Symfony v2.7 中的表单类型 - 这是在 v2.8 中添加的。您需要通过传递实例来表示您的类型:

$builder
->add('name', new TextType(),
[
'attr'        =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);

或者使用简写名称,例如text

$builder
->add('name', 'text',
[
'attr'        =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);

Symfony v2.7 不再维护,所以我强烈建议至少升级到 v2.8

相关内容

最新更新