Php 如何在Zend Framework中删除表单属性?

Php 如何在Zend Framework中删除表单属性?,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,我有一个表单元素: $Form=new Zend_Form; $Form->setAction($this->view->url(array('controller'=>'auth','action'=>'create'),null,true)) ->setMethod('post') ->setAttrib('id','auth-form') ->rem

我有一个表单元素:

$Form=new Zend_Form;
        $Form->setAction($this->view->url(array('controller'=>'auth','action'=>'create'),null,true))
             ->setMethod('post')
             ->setAttrib('id','auth-form')
             ->removeAttrib('enctype');
可以看出,我使用removeAttrib方法删除默认的enctype。但是,当我回显表格时,我仍然得到:

<form id="auth-form" enctype="application/x-www-form-urlencoded" action="/auth/resetpassword2" method="post">


“enctype”不是Zend_形式意义上的属性。参见方法。我不确定您是否可以在不亲自编写HTML的情况下完全删除它。

我相信
enctype=“application/x-www-form-urlencoded”
在默认情况下处于启用状态,以便文件上传在任何情况下都能正常工作。请注意,如果您将
enctype设置为
'
,您将无法通过该表单上载文件。

请检查此项。Zend\u Form\u Decorator\u Form的第92行

if ($method == Zend_Form::METHOD_POST) {
    $this->setOption('enctype', 'application/x-www-form-urlencoded');
}

因此,如果是post,则会自动添加enctype。您可以覆盖装饰器并删除,但我不确定设置enctype是否有任何问题。

啊,是的,我认为这是正确的答案。您也可以创建自己的表单视图辅助对象来覆盖默认的表单视图辅助对象。如果EncType与JS冲突,您能否将EncType更改为匹配?可能是一个解决方案:
$Form->setAttrib('enctype', null);