Zend Forms - populate () и setDefaults () - PullRequest
       16

Zend Forms - populate () и setDefaults ()

8 голосов
/ 19 августа 2009

Допустим, у меня есть форма, которая собирает имя и фамилию:

$first_name = new Zend_Form_Element_Text('first_name');
$first_name->setLabel("First Name")
    ->setRequired(true);

$last_name = new Zend_Form_Element_Text('last_name');
$last_name->setLabel("Last Name")
    ->setRequired(true);

$form = new Zend_Form();
$form->addElement($first_name)
    ->addElement($last_name)

Если я хочу использовать в форме метод "populate ($ data)" или "setDefaults ($ data)", как должен быть организован массив? Какой массив ожидают эти функции? Я не смог найти эту информацию в документации.

Кроме того, я знаю, что могу установить значение при создании самого элемента, но это не то, что мне нужно.

Ответы [ 4 ]

14 голосов
/ 31 августа 2009

Метод form-> populate () принимает массив, ключами которого являются имена поля формы.

Объект Zend_Db_Table_Row реализует метод toArray (), который можно использовать здесь (как и многие другие объекты). Таким образом, вы можете делать такие вещи, как:

$form = new MyForm;

$table = new MyTable;
$rowset = $table->find($id);
$row = $rowset->current();

$form->populate($row->toArray());
13 голосов
/ 01 сентября 2009

Ключи массива - это имена полей, значения массивов - значения полей.

$data = array( 'first_name' => 'Mickey', 'last_name' => 'Mouse' );
8 голосов
/ 11 ноября 2009

К вашему сведению - в Zend_Form $form->populate($data) просто звонит на $form->setDefaults($data).

0 голосов
/ 22 декабря 2014

просто, создать массив

$data = array('nameInput'=> 'your value');

Добавьте вашу форму в View

$this->view->form = $form;

затем вы добавляете данные в форму

$form->populate($data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...