0

要生成我使用的表单
{{ 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)
    );

并得到错误:

子“[编号]”不存在。

如何从该字段获取提交的数据?谢谢你的帮助...

4

2 回答 2

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

于 2013-05-21T01:30:17.533 回答
0

除了Ryans 的回答之外,您还使用了一个对象 ( 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
}
于 2013-05-21T11:55:00.970 回答