通过控制器的引用设置Zend_Form中元素的默认值

时间:2012-05-03 14:23:24

标签: php model-view-controller zend-framework zend-form

通过命令行,我设置了一个名为BookSlot的新表单:

zf create form BookSlot

大多数人都知道,在Zend框架的应用程序目录中创建一个表单目录。

在表单的init方法中,我添加了一个名为time的文本元素,并为其指定了标签'time':

$time = new Zend_Form_Element_Text('time');
$this->addElement($time);
$time->setLabel('Time');

我需要它有一个默认值,用户无法更改,所以我添加:

$time->setValue($value);

在我的控制器中,我创建了一个函数来获取上面的书槽形式:

public function getBookSlotForm(){
        return new Application_Form_BookSlot();
    }

我的索引控制器中也有一个书槽操作。

我将表单分配给变量并使其可以通过书槽操作中的视图:

$form = $this->getBookSlotForm();
    $this->view->form = $form;

在同一本书的插槽动作中,我有一个动态生成的id变量,但为此假设它是5:

$id = 5;

如何在上面的图书广告位表单中将$id的值设为$time的默认值?此外,我想这样做,以便用户无法更改此值。

1 个答案:

答案 0 :(得分:6)

对于用户无法使用readOnly属性更改值。在您的表单类

$time->setAttrib('readonly', 'readonly');

在您的操作中将您的ID指定为时间字段的默认值

$form->time->setValue($id);