Zend表单更改元素在运行时需要将选项设置为false

时间:2011-08-06 04:52:42

标签: zend-framework zend-form zend-form-element zend-file

我有一个表单并有两个文件上传元素。就像

$data_file_one = $this->createElement('file','data_file_one');
            $data_file_one->setRequired(true)
                            ->addValidator('Extension', false, 'csv')
                            ->setDestination($filepath);

两者都设置为必需的true。我使用相同的表单来发布新帖子和编辑帖子。当它用于编辑时,文件上传不应该是强制性的,必须设置为必需的false。所以,我需要改变

  

setRequired(true)to setRequired(false)

如果调用编辑操作来加载表单并更改此元素选项,该怎么办?

提前致谢。

1 个答案:

答案 0 :(得分:6)

Zend_Forms有一个名为getElement的方法,它允许您通过名称从表单中检索元素。这使您能够在将元素呈现给用户之前修改元素的默认值。

例如,要将字段从必需更改为可选,您可以执行以下操作:

$form->getElement('data_file_one')->setRequired(false);