如何在Zend_Form中使用Zend_Db_Table中的数据

时间:2008-12-01 14:18:32

标签: php database zend-framework zend-form zend-db-table

我创建了一个用于编辑删除和将用户添加到数据库的表单类。如果我想编辑用户,我怎样才能简单地将用户的信息提供给表单。

我使用Zend_Db_Table从数据库中获取数据。

这是userForm类:

class UsersForm extends Zend_Form
{
    public function init ()
    {
        $username = new Zend_Form_Element_Text('username',array(
            'validatrors' => array(
                'alpha',
                array('stringLength',5,10)
                ),
            'filters'   => array(
                'StringToLower'
                ),
            'required'  => true,
            'label'     => 'Gebruikersnaam:'
            ));

        $password = new Zend_Form_Element_Password('password', array(
            'validators'=> array(
                'Alnum',
                array('StringLength', array(6,20))
                ),
            'filters'   => array('StringTrim'),
            'required'  => true,
            'label'     => 'Wachtwoord:'
            ));

        $actif = new Zend_Form_Element_Checkbox('actif', array(
            'label'     => 'actif'));

        $this->addElements(array($username,$password,$actif));

        $this->setDecorators(array(
            'FormElements',
            array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')),
            array('Description',array('placement' => 'prepand')),
            'Form'
        ));
    }
}

谢谢,

Ivo Trompert

2 个答案:

答案 0 :(得分:4)

这是通过以下方式完成的:

$form->populate($data);

其中$ data是一个包含table-row-data的数组,其中字段名称必须与表单中的名称相匹配。 Zend将完成剩下的工作。

答案 1 :(得分:0)

扩展Db_Table上的'fetchXXX'或'find'方法之一将返回一个Rowset,调用current()就会给你一个Row,它有一个toArray方法,它会给你tharkun的响应格式对