在zend框架中编辑时将值填充到复选框

时间:2010-11-19 07:14:21

标签: zend-framework checkbox

我正在尝试将值填充到复选框中。我希望在数据库中存储值时检查复选框。

这是我的表格代码:

$form ['test_1'] = new Zend_Form_Element_Checkbox('test_1');
$form['test_1']->setLabel('test1')->setCheckedValue('1');

$form ['test_2'] = new Zend_Form_Element_Checkbox('test_2');
$form['test_2']->setLabel('test2')->setCheckedValue('2');

如果数据库中有值1,我想先选中复选框,如果需要检查2那么第二个复选框。

我需要在控制器中做些什么。

有谁可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

最简单的方法是从数据库中获取值作为映射到表单输入元素的数组,例如像

一样返回一行
array('test_1' => 'value of checkbox', 'test_2' => 'value of checkbox');

然后,您只需致电$form->populate($values),然后让Zend_Form进行设置,例如在您的控制器中

public function showFormAction()
{
    $form = $this->getHelper('forms')->get('MyForm');
    $data = $this->getHelper('dbGateway')->get('SomeTable');
    $form->populate($data->getFormData());
    $this->view->form = $form;
}

注意:上面的助手不存在。它们只是为了说明如何处理这个问题。请记住,您需要thin controllers and fat models,因此您不应在控制器内创建表单,也不应在其中添加任何查询。