Symfony 2删除使用表单类型创建的表单字段
我有一个EmployeeBasicinEntity,它使用注释具有一些验证约束的employee字段。我正在使用此实体进行员工注册。这是我的雇员基本类型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
<?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。例如,这就是myloginAction()
的外观,您会注意到没有使用表单类
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>