我有以下控制器:
public function postStuffAction(Request $request)
{
$form = $this->createFormBuilder()
->add("name", "text")
->getForm();
$form->handleRequest($request);
return $form->isValid(); //False
//return $form->getErrorsAsString(); //No errors
}
这是我的表格:
<form enctype="multipart/form-data" method="post" action="http://mydomain/resource/1?XDEBUG_SESSION_START=appointmed">
<input type="text" name="name" />
<button class="btn btn-success" type="submit"> Upload file </button>
</form>
此表单位于不同的域中,不会被重新命名为twig模板,只是一个简单的html表单。
当控制器收到请求时,表单总是空的,可能会发生什么?
答案 0 :(得分:2)
如果您要创建表单并在Twig中显示,则只能使用FormBuilder的内置验证功能。
如果要验证来自手动构建的表单或从其他域发布的表单的输入,则需要访问Request对象,将其映射到您的实体,然后调用验证器服务。例如:
// Setup entity and map Request
$entity = new Entity();
$entity->setName($request->get('name', null));
// Validate the entity
$validator = $this->get('validator');
$errors = $validator->validate($entity);
if (count($errors) > 0) {
return $errors
}