Zend的形式 - 填入()和setDefaults()(Zend Forms - populate

2019-08-01 18:27发布

比方说,我有一个收集了名字和姓氏的一种形式:

$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)

如果我想使用“填充($数据)”或窗体上的“setdefaults($数据)”的方法,如何在阵列需要组织? 什么类型的数组,做这些功能的期待? 我一直没能找到的文档信息。

另外,我知道,在创建元素本身的时候,我可以设置的值,但是这不是我所需要的。

Answer 1:

数组键是字段名称,数组的值是字段值。

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


Answer 2:

的形式 - >填充()方法采用的阵列,其中键是表单字段的名称。

在一个Zend_Db_Table_Row对象实现,可在这里使用(如做许多其他对象)一个指定者()方法。 所以,你可以做的东西,如:

$form = new MyForm;

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

$form->populate($row->toArray());


Answer 3:

仅供参考-在Zend_Form中, $form->populate($data)只是让调用$form->setDefaults($data)



Answer 4:

简单,建立一个数组

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

你的窗体添加到您的视图

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

然后将数据添加到窗体

$form->populate($data);


文章来源: Zend Forms - populate() and setDefaults()