Zend framework2 ZF2:如何设置要忽略的表单元素?

Zend framework2 ZF2:如何设置要忽略的表单元素?,zend-framework2,zend-form,Zend Framework2,Zend Form,不知何故,我无法忽略Zend Framework 2中的表单元素 所有这些似乎都不起作用: $this->添加(数组)( '名称'=>'提交', “忽略”=>TRUE, '属性'=>数组( '类型'=>'提交', 'value'=>'Go!', 'id'=>'submitbutton', “忽略”=>TRUE ), “选项”=>数组( “忽略”=>TRUE ) )); 这就是它在Zend Framework1中的工作方式: //Zend框架1 $this->addElement( “提交”

不知何故,我无法忽略Zend Framework 2中的表单元素

所有这些似乎都不起作用:

$this->添加(数组)(
'名称'=>'提交',
“忽略”=>TRUE,
'属性'=>数组(
'类型'=>'提交',
'value'=>'Go!',
'id'=>'submitbutton',
“忽略”=>TRUE
),
“选项”=>数组(
“忽略”=>TRUE
)
));
这就是它在Zend Framework1中的工作方式:

//Zend框架1
$this->addElement(
“提交”,
“登录”,
排列(
“忽略”=>true,
'标签'=>'登录'
)
);
编辑:
为什么我需要“忽略”选项?

假设您的表单有一个提交按钮。对于普通PHP,类似于
$\u POST
的内容也会列出提交按钮。Zend 1提供了有用的选项
setIgnore($flag)
getIgnore()
来排除这些元素
$form->getValues()
(验证后)将排除标志“ignore”设置为
TRUE
的所有元素。请参阅。

查看关于

我的用途是:

  • 创建您的表单
  • 创建一个过滤器
  • 在控制器中使用

    $form = new BasicForm();
    $form->setInputFilter(new BasicFilter());
    
  • 关于过滤器,您可以执行以下操作: $factory=新的InputFactory()


    我想你在找

    'options' => array(
        'exclude' => true,
    ),
    

    你说的忽视是什么意思。忽略提交元素的目的是什么?你的意思是从验证中排除吗?您的意思是允许空值吗?你的问题不是很直截了当。@Sam:谢谢你的提示。我以为“Zend Frameworkers”会明白我的意思我编辑了我的原稿。在我看来,ZF2没有这样的特点,我个人认为这是件好事,因为它也很没用。如果您不需要任何POST数据,那么就不要使用它。根本没有必要不拥有它。由于您使用
    $Form->setData($request->getPost())
    设置表单数据,您只需将
    getPost()
    放入一个变量,然后
    unset($postData['submit'])
    等等……我遇到了一种情况,即表单元素通过JavaScript更改其他隐藏表单元素。表单元素纯粹是美观的,因此我不需要将其发布到服务器。在这种情况下,它对我很有用。这不是解决方案(至少在使用表单的bind()方法时是如此),另外,自ZF2 2.4.8以来,allowEmpty被弃用
    $form->setValidationGroup('email', 'password');
    $form->setData($data);
    if ($form->isValid()) {
        // Contains only the "email" and "password" values
        $data = $form->getData();
    }
    
    'options' => array(
        'exclude' => true,
    ),