Как использовать данные из Zend_Db_Table в Zend_Form - PullRequest
1 голос
/ 01 декабря 2008

Я создал класс формы для редактирования, удаления и добавления пользователей в базу данных. Если я хочу отредактировать пользователя, как я могу просто предоставить информацию о пользователе в форму.

Я использую 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'
        ));
    }
}

Спасибо,

Иво Тромперт

Ответы [ 2 ]

4 голосов
/ 01 декабря 2008

Это делается с помощью:

$form->populate($data);

где $ data - это массив с данными таблицы-строки, где имена полей должны совпадать с именами из формы. Zend сделает все остальное.

0 голосов
/ 01 декабря 2008

один из методов 'fetchXXX' или 'find' в вашей расширенной Db_Table вернет Rowset, вызовет current () для этого даст вам Row, у которого есть метод toArray, который даст вам формат, который запрашивает ответ tharkun для.

...