Symfony 2.7:无法加载类型 "Symfony\Component\Form\Extension\Core\Type\TextType"
Symfony 2.7: Could not load type "Symfony\Component\Form\Extension\Core\Type\TextType"
我正在开发一个基于 Symfony 2.7 的应用程序。我有一个包含以下代码的自定义表单类型:
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:
Could not load type
"Symfony\Component\Form\Extension\Core\Type\TextType"
我已验证 TextType class 存在。
我尝试使用 composer dump,但似乎没有帮助。此外,我尝试删除 vendor 目录并重做 composer install,但这也没有帮助。
我还能尝试什么?
您不能使用完全限定的 class 名称来表示 Symfony v2.7 中的表单类型 - 这是在 v2.8 中添加的。您需要通过传递实例来表示您的类型:
$builder
->add('name', new TextType(),
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
或使用 shorthand name 例如 text
:
$builder
->add('name', 'text',
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
虽然 Symfony v2.7 不再维护,所以我强烈建议至少升级到 v2.8
我正在开发一个基于 Symfony 2.7 的应用程序。我有一个包含以下代码的自定义表单类型:
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:
Could not load type "Symfony\Component\Form\Extension\Core\Type\TextType"
我已验证 TextType class 存在。
我尝试使用 composer dump,但似乎没有帮助。此外,我尝试删除 vendor 目录并重做 composer install,但这也没有帮助。
我还能尝试什么?
您不能使用完全限定的 class 名称来表示 Symfony v2.7 中的表单类型 - 这是在 v2.8 中添加的。您需要通过传递实例来表示您的类型:
$builder
->add('name', new TextType(),
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
或使用 shorthand name 例如 text
:
$builder
->add('name', 'text',
[
'attr' =>
[
'placeholder' => 'Your name',
],
'constraints' =>
[
new NotBlank(['message' => 'Please provide your name']),
],
]
);
虽然 Symfony v2.7 不再维护,所以我强烈建议至少升级到 v2.8