Zend表单:添加和编辑确定,但View怎么样?

时间:2011-06-23 04:59:24

标签: php zend-form

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

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

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

2 个答案:

答案 0 :(得分:1)

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

删除字段

<?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'));
    }
}

我希望这有用。

答案 1 :(得分:0)

要拥有“仅查看”表单,我已将子表格编入子类,并包含以下代码:

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