我试图传递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。
答案 0 :(得分:0)
最简单的方法是将这些值传递给实体。您可以从请求对象中获取_GET值,如下所示。
$entity = new Entity();
$entity->setField1($request->query->get('field1'));
//...
$form = $this->createCreateForm($entity);