无法加载类型提交 symfony 3


could not load type submit symfony 3

我是Symfony的新手,我对3thd版本有一些问题。 我使用名为userType的控制台创建了一个formType。 一切都很好,但我无法添加提交按钮。 旧->add('save','submit')方式不起作用,我认为这与symfony的版本有关。 所以,这是我的代码:

<?php
namespace MyBundle'UserBundle'Form;
use Symfony'Component'Form'AbstractType;
use Symfony'Component'Form'FormBuilderInterface;
use Symfony'Component'OptionsResolver'OptionsResolver;
class userType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name')
            ->add('nickname')
            //->add('dateOfBirth', 'date')
            ->add('sex')
            ->add('country')
            ->add('city')
            ->add('email')
            ->add('password')
            ->add('save', SubmitType::class, array('label' => 'Create Task')); //here is the problem
    }
    /**
     * @param OptionsResolver $resolver
     */
    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'MyBundle'UserBundle'Entity'user'
        ));
    }
}

你有没有关于如何解决这个问题的想法? 对不起,如果我在 wron 部分发帖:-)。

谢谢你读了我,

阿克塞尔

您需要使用正确的命名空间:

namespace MyBundle'UserBundle'Form;
use Symfony'Component'Form'AbstractType;
use Symfony'Component'Form'FormBuilderInterface;
use Symfony'Component'OptionsResolver'OptionsResolver;
use Symfony'Component'Form'Extension'Core'Type'SubmitType; // ← this line

正如"Symfony 3的最佳实践"一书的第27页所述,你会发现这并没有改变。

表单按钮配置

表单类应尽量与它们的使用位置无关。 这使得它们以后更容易重用。在模板中添加按钮, 不在窗体类或控制器中。从 Symfony 2.3 开始,你可以 将按钮添加为表单上的字段。这是简化 呈现表单的模板。但是如果你直接添加按钮 在您的窗体类中,这将有效地限制其范围 形式。

$builder
   // ...
   ->add('save', SubmitType::class, array('label' => 'Create Post'))
;