2010-11-19 28 views
0

我正试图将值填入复选框。我想在数据库中存储值时检查复选框。在Zend框架中编辑时将值填入复选框

这是我在表单代码:

$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

最简单的方法是将数据库中的值作为映射到表单输入元素的数组(例如,返回一行像

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,所以你不应该在控制器内部创建表单,也不要在那里放置任何查询。

+0

thanx的回复。 – rasth 2010-11-26 06:44:23

+0

@rasth是否解决了您的问题? – Gordon 2010-11-26 07:50:09