Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms 从输入表单到控制器的数据_Forms_Symfony - Fatal编程技术网

Forms 从输入表单到控制器的数据

Forms 从输入表单到控制器的数据,forms,symfony,Forms,Symfony,要生成表单,我使用 {{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_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]">
和获取错误:

子项“[number]”不存在

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

首先需要将请求绑定到表单。有一个
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')
除了使用对象(
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
}

您使用的是什么版本的symfony?您能从控制器中显示更多的代码吗?请您帮我演示一下
Find client
的代码应该是什么样子?我有点离题了。我假设你已经有了一个
FindClient
类,正如你所展示的那样,在你发布的代码中。我得到了。但代码完全是废话。我需要实现getNumber。原因我得到了
FatalErrorException:错误:调用未定义的方法My\DefaultBundle\Form\Model\FindClient::getNumber()
不知道,您的责任。如果你不知道,回到symfony的书上,读一读关于实体的书
$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
}