【发布时间】:2013-03-30 03:26:00
【问题描述】:
我无法在 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 manual。
【问题讨论】:
-
忽略是什么意思。忽略提交元素的目的是什么?你的意思是从验证中排除?你的意思是允许空值吗?你的问题不是很直接。
-
@Sam:感谢您的提示。我以为“Zend-Frameworkers”会明白我的意思。 ;) 我编辑了我的原作。发帖澄清。
-
据我所知,ZF2没有这样的功能,我个人认为这是一件好事,因为它也很没用。如果您不需要任何 POST 数据,那么就不要使用它。根本没有必要完全没有它。由于您使用
$form->setData($request->getPost())设置表单数据,您可以简单地将getPost()放入变量中,然后将unset($postData['submit'])左右... -
我有一个表单元素通过 JavaScript 更改其他隐藏的表单元素的情况。表单元素纯粹是美学的,所以我不需要将它发布到服务器。在这种情况下,它对我很有用。