Zend Form:添加和编辑可以,但View呢


Zend Form: Add and Edit OK, but what about View?

根据一本书中的Zend教程,我创建了一个基本表单,并将其子类化了两次——一次用于编辑,一次用于创建。我应该如何创建仅查看版本?

所有"查看"详细信息与"编辑"版本相同,但我不希望用户能够编辑任何字段。

作为一个相关的问题,编辑版本中有一个字段我不希望用户能够编辑。实现这一目标的最佳方式是什么?javascript是答案吗?

嘿,如果你在基本表单中设置了所有字段,那么你可以这样做:

删除字段

<?php
Application_Model_Form_BaseForm extends Zend_Form {
    public function init()
    {
        $this->addElement('text', 'baseElement', array('addDecoratorsInHere'));
    }
}
Application_Model_Form_EditForm extends Application_Model_Form_BaseForm {
    public function init()
    {
        parent::init();
        $this->removeElement('baseElement');
    }
}

禁用字段,仅查看

我自己从来没有这样做过,但我想你可以创建另一个表单,并将所有字段设置为禁用。

<?php
Application_Model_Form_EditForm extends Application_Model_Form_BaseForm {
    public function init()
    {
        parent::init();
        $this->getElement('baseElement')->addDecorator(array('disabled' => 'disabled'));
    }
}

我希望这会有所帮助。

为了有一个"仅查看"表单,我已经将Edit表单子类化,并包含以下代码:

$allElements = $this->getElements();
foreach ($allElements as $element) {
    $element->setAttrib('disabled', 'disabled');
}