Anc*_*end 8 forms symfony1 formbuilder symfony
我formBuilder在Symfony中创建了一个表单.我使用外部样式表并引用标记ID为表单输入添加一些基本样式.表单正确呈现并正确处理信息.
但是,它会输出一个不需要的无序列表,其中包含一个包含以下文本的列表项: This form should not contain extra fields.
我很难摆脱这个通知.我想知道是否有人可以帮助我理解为什么用我的表格呈现它以及如何删除它?
提前谢谢了!
调节器
$form = $this->createFormBuilder($search)
->add('searchinput', 'text', array('label'=>false, 'required' =>false))
->add('search', 'submit')
->getForm();
$form->handleRequest($request);
Run Code Online (Sandbox Code Playgroud)
树枝输出(表格输出并正确处理
This form should not contain extra fields.
Run Code Online (Sandbox Code Playgroud)
呈现HTML
<form method="post" action="">
<div id="form">
<ul>
<li>This form should not contain extra fields.</li>
</ul>
<div>
<input type="text" id="form_searchinput" name="form[searchinput]" />
</div>
<div>
<button type="submit" id="form_search" name="form[search]">Search</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" value="bb342d7ef928e984713d8cf3eda9a63440f973f2" />
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
小智 9
在我看来,由于令牌字段,你有问题.如果是这样,请尝试向createFormBuilder()添加选项:
$this->createFormBuilder($search, array(
'csrf_protection' => true,
'csrf_field_name' => '_token',
))
->add('searchinput', 'text', array('label'=>false, 'required' =>false))
->add('search', 'submit')
->getForm();
Run Code Online (Sandbox Code Playgroud)
要查找额外字段,请在控制器中使用此代码,以获取请求:
$data = $request->request->all();
print("REQUEST DATA<br/>");
foreach ($data as $k => $d) {
print("$k: <pre>"); print_r($d); print("</pre>");
}
$children = $form->all();
print("<br/>FORM CHILDREN<br/>");
foreach ($children as $ch) {
print($ch->getName() . "<br/>");
}
$data = array_diff_key($data, $children);
//$data contains now extra fields
print("<br/>DIFF DATA<br/>");
foreach ($data as $k => $d) {
print("$k: <pre>"); print_r($d); print("</pre>");
}
$form->bind($data);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18385 次 |
| 最近记录: |