Symfony 2删除使用表单类型创建的表单字段

Symfony 2删除使用表单类型创建的表单字段,symfony,doctrine,Symfony,Doctrine,我有一个EmployeeBasicinEntity,它使用注释具有一些验证约束的employee字段。我正在使用此实体进行员工注册。这是我的雇员基本类型 <?php namespace Benerite\EmployeeBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsRes

我有一个EmployeeBasicinEntity,它使用注释具有一些验证约束的employee字段。我正在使用此实体进行员工注册。这是我的雇员基本类型

<?php

namespace Benerite\EmployeeBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class EmployeeBasicInfoType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('company', 'entity', array(
                'class' => 'BeneriteCompanyBundle:Company',
                'choice_label' => 'companyName',
                'placeholder' => 'Please select',
            ))
            ->add('employeeIdentificationCode')
            ->add('employeePassword', 'password')
            ->add('employeeFirstName')
            ->add('employeeMiddleName')
            ->add('employeeLastName')
            ->add('employeeDob','date',array(
                'years' => range(date('Y'),date('Y',strtotime('-50 years')) ),
                'required' => True,
                )
            )
            ->add('employeeGender', 'choice', array(
                    'choices'  => array('m' => 'Male', 'f' => 'Female', 't' => 'Transgender', 'na' => 'Do not want to disclose'),
                    'expanded'      => true,
                    'multiple'      => false, 'required' => true, 'data' => 'na',
                )
            )
        ;
    }

    /**
     * @param OptionsResolverInterface $resolver
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'data_class' => 'Benerite\EmployeeBundle\Entity\EmployeeBasicInfo'
        ));
    }

    /**
     * @return string
     */
    public function getName()
    {
        return 'benerite_employeebundle_employeebasicinfo';
    }
}

对于登录操作,我认为您不必使用FormType。例如,这就是my
loginAction()
的外观,您会注意到没有使用表单类

public function loginAction(Request $request)
{
    $authenticationUtils = $this->get('security.authentication_utils');

    // get the login error if there is one
    $error = $authenticationUtils->getLastAuthenticationError();

    // last username entered by the user
    $lastUsername = $authenticationUtils->getLastUsername();

    return $this->render(
        'UserBundle:Default:login.html.twig',
        array(
            // last username entered by the user
            'last_username' => $lastUsername,
            'error' => $error,
        )
    );

}
这是我的
login.html.twig

<form action="{{ path('login_check') }}" method="post" class="form-horizontal transparent-bg">
    <div class="form-group">
        <label for="username" class="col-sm-2 control-label">Username:</label>

        <div class="col-sm-10">
            <input class="form-control" type="text" id="username" name="_username"
                   value="{{ last_username }}"/>
        </div>

    </div>
    <div class="form-group">
        <label for="password" class="col-sm-2 control-label">Password</label>

        <div class="col-sm-10">
            <input class="form-control" type="password" id="password" name="_password"/>

        </div>
    </div>

    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"
                    >
            <button type="submit" class="btn btn-success">login</button>
        </div>
    </div>

</form>

用户名:
密码
登录
这里的重点是

用户名必须具有名称\u用户名,密码必须具有 这个名字是你的密码


这就是创建登录表单所需的全部内容。

生成了什么错误?错误:CSRF令牌无效。请尝试重新提交表单。错误:公司名称不能为空。错误:员工名字不能为空。错误:员工姓氏不能为空。错误:员工dob名称不能为空。错误:员工性别名称不能为空。我想取消所有其他表单字段验证。希望您理解我的要求。我已通过在表单中添加{form_rest(form)}解决了CSRF令牌无效的问题
<form action="{{ path('login_check') }}" method="post" class="form-horizontal transparent-bg">
    <div class="form-group">
        <label for="username" class="col-sm-2 control-label">Username:</label>

        <div class="col-sm-10">
            <input class="form-control" type="text" id="username" name="_username"
                   value="{{ last_username }}"/>
        </div>

    </div>
    <div class="form-group">
        <label for="password" class="col-sm-2 control-label">Password</label>

        <div class="col-sm-10">
            <input class="form-control" type="password" id="password" name="_password"/>

        </div>
    </div>

    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"
                    >
            <button type="submit" class="btn btn-success">login</button>
        </div>
    </div>

</form>