Zend Form: добавьте и отредактируйте OK, но как насчет View? - PullRequest
0 голосов
/ 23 июня 2011

Следуя учебнику по Zend из книги, я создал базовую форму и дважды разделил ее на подклассы - один раз для редактирования, один раз для создания.Как мне создать версию только для просмотра?

Все детали просмотра совпадают с версией редактирования, но я не хочу, чтобы пользователи могли редактировать любые поля.

Как связанный вопрос - в версии редактирования есть одно поле, которое я не хочу, чтобы пользователи могли редактировать.Какой лучший способ достичь этого?Является ли javascript ответом?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Эй, если у вас есть все поля, настроенные в базовой форме, вы можете сделать это:

Удалить поле

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

Надеюсь, это полезно.

0 голосов
/ 26 июня 2011

Чтобы иметь форму «только для просмотра», я подклассифицировал форму редактирования и включил следующий код:

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