加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

表单 – Symfony 2此表单不应包含额外字段

发布时间:2020-12-24 23:29:06 所属栏目:资源 来源:网络整理
导读:我在Symfony中使用formBuilder创建了一个表单.我使用外部样式表并引用标记ID为表单输入添加一些基本样式.表单正确呈现并正确处理信息. 但是,它会输出一个不需要的无序列表,其中包含一个包含以下文本的列表项:此表单不应包含额外的字段. 我很难摆脱这个通知.

我在Symfony中使用formBuilder创建了一个表单.我使用外部样式表并引用标记ID为表单输入添加一些基本样式.表单正确呈现并正确处理信息.

但是,它会输出一个不需要的无序列表,其中包含一个包含以下文本的列表项:此表单不应包含额外的字段.

我很难摆脱这个通知.我想知道是否有人可以帮助我理解为什么用我的表格呈现它以及如何删除它?

提前谢谢了!

调节器

$form = $this->createFormBuilder($search)
        ->add('searchinput','text',array('label'=>false,'required' =>false))
        ->add('search','submit')
        ->getForm();

$form->handleRequest($request);

树枝输出(表格输出并正确处理

This form should not contain extra fields.

呈现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>

解决方法

在我看来,由于令牌字段,你有问题.如果是这样,请尝试向createFormBuilder()添加选项:
$this->createFormBuilder($search,array(
        'csrf_protection' => true,'csrf_field_name' => '_token',))
    ->add('searchinput','required' =>false))
    ->add('search','submit')
    ->getForm();

要查找额外字段,请在控制器中使用此代码,以获取请求:

$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);

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读