Допустим, у меня есть форма, которая собирает имя и фамилию:
$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);