5

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

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

$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()(验证后)将排除标志“忽略”设置为的所有元素TRUE。参见ZF1 手册

4

3 回答 3

2

查看输入过滤器

我的使用是这样的:

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

    $form = new BasicForm();
    $form->setInputFilter(new BasicFilter());
    

关于过滤器,你可以这样做: $factory = new InputFactory();

    $this->add($factory->createInput(array(
        'name' => 'birthday',
        'required' => false,
        'allowEmpty' => true,));
于 2013-03-30T13:08:05.803 回答
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

于 2014-03-29T10:39:52.213 回答
0

我想你正在寻找

'options' => array(
    'exclude' => true,
),
于 2016-12-12T04:36:43.700 回答