Php Symfony 2.7:无法加载类型“;Symfony\Component\Form\Extension\Core\Type\TextType";
我正在开发一个基于Symfony 2.7的应用程序。我有一个自定义表单类型,其中包含以下代码:Php Symfony 2.7:无法加载类型“;Symfony\Component\Form\Extension\Core\Type\TextType";,php,forms,symfony,symfony-2.7,Php,Forms,Symfony,Symfony 2.7,我正在开发一个基于Symfony 2.7的应用程序。我有一个自定义表单类型,其中包含以下代码: namespace MyCompany\AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Componen
namespace MyCompany\AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Validator\Constraints\NotBlank;
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'])
]
]
)
;
}
...
。。。当我加载表单时,我得到以下InvalidArgumentException:
无法加载类型
“Symfony\Component\Form\Extension\Core\Type\TextType”
我已验证TextType类是否存在
我尝试使用composer dump,但似乎没有任何帮助。此外,我尝试删除供应商目录并重新安装composer,但也没有任何帮助
我还可以尝试什么?在Symfony v2.7中,您不能使用完全限定的类名来表示表单类型,这是在v2.8中添加的。您需要通过传递实例来表示您的类型:
$builder
->add('name', new TextType(),
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
或通过使用例如文本
:
$builder
->add('name', 'text',
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
Symfony v2.7不再维护,因此我强烈建议升级到至少v2.8您可以运行
composer dump
以刷新供应商缓存,或删除供应商/
目录。感谢您的评论,AL。我只是尝试使用composer dump
,但似乎没有任何帮助。我还尝试删除供应商
目录并重新安装composer
,但也没有效果。