Zend Forms – populate () и setDefaults ()

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

$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)» в форме, как должен быть организован массив? Какого рода массивы ожидают эти функции? Я не смог найти эту информацию в документах.

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

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

 $data = array( 'first_name' => 'Mickey', 'last_name' => 'Mouse' ); 

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

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

 $form = new MyForm; $table = new MyTable; $rowset = $table->find($id); $row = $rowset->current(); $form->populate($row->toArray()); 

FYI – в Zend_Form, $form->populate($data) $form->setDefaults($data) просто вызывает вызов $form->setDefaults($data) .

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

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

Добавьте свою форму в свой вид

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

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

 $form->populate($data);