这是控制器操作中的表单:
$form = $this->get('form.factory')->createNamedBuilder('meetings_form', 'form', $defaults)
->add('list','choice',array(
'choices' => array('1'=>'val1','2'=>'val2'),
'required' => false
))
->add('agency','text')
->add('name','text')
->add('phone','text')
->add('email','email')
->add('type','hidden')
->getForm();
这是处理 POST 的另一个操作
public function wsFormPostAction(Request $request)
{
if ('POST' == $request->getMethod()) {
$form = $this->get('form.factory')->createNamedBuilder('meetings_form', 'form')
->add('list', 'choice',array(
'choices' => array()
))
->add('agency', 'text')
->add('name', 'text')
->add('phone', 'text')
->add('email', 'email')
->add('type', 'hidden')
->getForm();
$form->bind($request);
if ($form->isValid()) {
$data = $form->getData();
} else {
$errors = $form->getErrorsAsString();
var_dump($errors);
}
}
}
这就是我得到的:
列表:错误:此值无效
代理:没有错误
名称:没有错误
电话:没有错误
电子邮件:没有错误
类型:没有错误
在没有指定 data_class 的情况下,根本没有选择字段的示例。这似乎是一个简单的任务,但我无法解决它。为什么验证失败?