有没有办法在Symfony2中强制绑定表单?

有没有办法在Symfony2中强制绑定表单?,symfony,symfony2-forms,Symfony,Symfony2 Forms,我有一个表格类型 class LoginFacebookType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('access_token', 'text', array("constraints" => array(

我有一个表格类型

class LoginFacebookType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('access_token', 'text', array("constraints" => array(
                new Assert\NotBlank(),
                new Assert\Length(array("max" => 512))                        
            )))
            ->add('save', 'submit');
    }

    public function getName()
    {
        return 'facebook_login';
    }
}
然后,我在控制器上使用它作为:

$facebookLoginForm = $this->createForm(new LoginFacebookType());
$facebookLoginForm->handleRequest($request);
if($facebookLoginForm->isValid())
{
    //do something
}
else
{
    //Debug form errors
    print_r($facebookLoginForm->getErrorsAsString()); die();
}
我的问题是:如果我用一个名为“facebook\u login[access\u token]”的参数发出请求,我会在控制器上得到所有错误,比如一个非常大的访问令牌,或者没有传递csrf\u令牌(这没问题)。但如果我发出了一个没有任何参数的请求,我会得到isValid=false,但错误列表是空的

我想要一个“需要访问令牌字段”和“无效csrf令牌”之类的内容


我怎样才能做到这一点呢?

这是因为,如果帖子数据中没有“facebook\u登录”键,那么表单根本不会提交。您可以强制它提交替换
$facebookloginfo->handleRequest($request)带有:

$facebookLoginForm->submit($request->request->get('facebook_login', [])); 

谢谢,成功了。您知道此方法是否可用于包含
文件
字段的表单?