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

时间:2013-03-30 03:26:01

标签: zend-framework2 zend-form

不知怎的,我无法忽略Zend Framework 2中的Form Elements。

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

$this->add(array(
  'name' => 'submit',
  'ignore' => TRUE,
  'attributes' => array(
    'type'  => 'submit',
    'value' => 'Go!',
    'id' => 'submitbutton',
    'ignore' => TRUE
),
'options' => array(
  'ignore' => TRUE
)
));

这是用于在Zend Framework1中的工作方式:

//Zend Framework 1
$this->addElement(
  'submit',
  'login',
  array(
   'ignore' => true,
   'label' => 'Login'
    )
);

修改:
为什么我需要“忽略”选项?

假设您的表单有一个提交按钮。使用普通的PHP,类似$_POST的内容也会列出您的提交按钮。 Zend 1具有有用的选项setIgnore($flag)getIgnore()来排除这些元素。 $form->getValues()(验证后)将排除标记为'ignore'的所有元素设置为TRUE。请参阅ZF1 manual

3 个答案:

答案 0 :(得分:2)

查看inputfilters

我的用法是这样的:

  1. 创建表单
  2. 创建过滤器
  3. 在控制器中使用

    $form = new BasicForm();
    $form->setInputFilter(new BasicFilter());
    
  4. 关于过滤器,您可以这样做:    $ factory = new InputFactory();

        $this->add($factory->createInput(array(
            'name' => 'birthday',
            'required' => false,
            'allowEmpty' => true,));
    

答案 1 :(得分:0)

$form->setValidationGroup('email', 'password');
$form->setData($data);
if ($form->isValid()) {
    // Contains only the "email" and "password" values
    $data = $form->getData();
}

http://framework.zend.com/manual/2.3/en/modules/zend.form.quick-start.html#validation-groups

答案 2 :(得分:0)

我认为你在寻找

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