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

发布于 2024-07-09 11:18:27 字数 1416 浏览 11 评论 0原文

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

我使用 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

I have create a form class for editing deleting and add users to a database. If I want to edit a user how can I simply supply the information of the user to the form.

I use a Zend_Db_Table to get the data from the database.

This is the userForm class:

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

Thank you,

Ivo Trompert

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

披肩女神 2024-07-16 11:18:27

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

$form->populate($data);

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

This is done with:

$form->populate($data);

where $data is an array with your table-row-data where the field names have to match the ones from the form. Zend will do the rest.

痴者 2024-07-16 11:18:27

扩展 Db_Table 上的“fetchXXX”或“find”方法之一将返回一个 Rowset,在其上调用 current() 将为您提供一个 Row,其中有一个 toArray 方法,该方法将为您提供 tharkun 响应所要求的格式。

one of the 'fetchXXX' or 'find' methods on your extended Db_Table will return a Rowset, calling current() on that will give you a Row, which has a toArray method that will give you the format tharkun's response is asking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文