要生成表单,我使用
{{ form_rest(form) }}
它生成了一个html:
<label class="required" for="findclient_client_number">Client number</label>
<input id="findclient_client_number" type="text" required="required" name="findclient[client][number]">
在控制器上我试图通过以下方式访问数据:
$form = $this->createForm(new FindClientType(), new FindClient());
$form->bind($this->getRequest());
$clientnumber = $form->get('number')->getData();
return $this->render(
'MyDefaultBundle:Default:client.html.twig', array('clientnumber' => $clientnumber)
);
得到错误:
儿童“[数字]”不存在。
如何从该字段获取提交的数据? 谢谢你的帮助...
答案 0 :(得分:0)
您需要先将请求绑定到表单。有Form::bind()
方法可以为您完成此操作。
$form = $this->createForm(new ClientType());
if ($request->isMethod('POST')) {
$form->bind($this->get('request'));
$form->getData(); // Will return bound data
}
您还可以直接从控制器中的请求中获取数据。
$this->get('request')->request->get('name')
请参阅http://symfony.com/doc/master/book/forms.html#using-a-form-without-a-class
答案 1 :(得分:0)
除Ryans answer之外,您使用的是对象(FindClient
)。因此,只需绑定您的表单,获取数据并处理您的FindClient
对象即可获取您的号码。
$form = $this->createForm(new FindClientType(), new FindClient());
if ($request->isMethod('POST')) {
$form->bind($this->getRequest());
$data = $form->getData(); // Will return bound data
$clientnumber = $data->getNumber() // assuming your getter for the number
}