symfony2:将请求数据填入表单

时间:2015-09-25 11:17:07

标签: symfony

我试图传递GET参数来填充表单字段的默认值:

Form Fields: field1, field2
URL: http://localhost:8000/some_entity/new?field1=default

在控制器中,如果尝试将参数绑定到表单:

public function newAction(Request $request) {
   $entity = new Entity();
   $form = $this->createCreateForm($entity);

   // first try
   $request->request->set('field1', $_GET['field1']);
   $form->handleRequest($request);

   // second try
   $form->setData(array('field1' => $_GET['field1']));

   // this works, but it's useless in my case
   $entity->setField1($_GET['field1']);
   $form->setData($entity);

   [...]
}

你能告诉我怎么做吗?

修改 我需要这个,因为这个控制器不是专门用于这个实体的。在第二步中,我想提供一个按钮来添加"子值"加入实体例如。将comment添加到post,通过$_GET vars自动选择专用的帖子ID。

1 个答案:

答案 0 :(得分:0)

最简单的方法是将这些值传递给实体。您可以从请求对象中获取_GET值,如下所示。

$entity = new Entity();
$entity->setField1($request->query->get('field1'));
//...
$form = $this->createCreateForm($entity);