像这样的Zend_Form:
class Application_Form_Registration extends Zend_Form
{
public function init()
{
/* Form Elements & Other Definitions Here ... */
$$this->setMethod('post');
//first name
$this->addElement('text', 'email', array(
'label' => 'First name',
'required' => true,
'filters' => array('StringTrim'),
));
//last name
$this->addElement('text', 'lastname', array(
'label' => 'Last name',
'required' => true,
'filters' => array('StringTrim')
));
$this->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Submit'
));
$this->addElement('hash', 'csrf', array(
'ignore' => true,
));
}
}
我通读了ZF1 1.12 API和参考文档,但是我在Zend_Form :: addElement()配置选项中找不到标志“ignore”的含义。
当然我用Google搜索并找到了它,但这不是工作方式。如何找到某些特定内容的含义。我不认为我需要阅读源代码?
以这个addElement()
为例,我错过了哪里可以看得更远? Zend_Config类中没有任何关于ignore
标志的内容。
答案 0 :(得分:0)
据我所知ignore
标志定义表单值($form->getValues()
)是否包含元素值。如果某个元素的ignore设置为true,那么表单值($form->getValues()
)将不包含此元素值。
答案 1 :(得分:0)
ZF文档可能......有时缺乏。忽略标志状态的API文档:
getIgnore( ) : bool Get ignore flag (used when retrieving values at form level)
提示ignore
标志与Zend_Form
GetValues()
的行为有关,但事实并非如此。
在这些情况下,我喜欢直接查看源代码,以便我自己看看:
public function getValues($supressArrayNotation = false)
{
...
foreach ($this->getElements() as $key => $element) {
if (!$element->getIgnore()) {
...
}
您可以看到Zend_Form中的getValues()函数将在将值添加到返回数组之前检查每个元素上的ignore
标志。如果该标志为true,则不包括该值。