0

我想使用 Zend Form (Zend Framework 2) 编辑数据库中的记录。

在 ZF1 中,我在控制器中做了:

$values = $table->getValues();
$form = new MyForm();
$form->populate($values);
$this->view->form = $form;

并在视图中:

<?php echo $this->form ?>

在 ZF2 中,我在控制器中尝试过:

$values = $table->getValues();
$form = new MyForm();
$form->populateValues($values); // form->setData($values) does not work either
return array('form' => $form);

在我的观点中:

<?php echo $this->form()->openTag($form) ?>
<?php echo $this->formCollection($form) ?>
<?php echo $this->form()->closeTag($form) ?>

但这会呈现表单,但没有数据。

这样做的正确方法是什么?

4

2 回答 2

0

问题是$table->getValues()在我的代码中返回一个 arrayObject 而populateValues()需要一个数组。

于 2013-01-28T15:49:46.503 回答
0

prepare()在您的视图脚本中打开它之前,您需要调用您的表单。例如:

<?php $form->prepare(); ?>
<?php echo $this->form()->openTag($form) ?>
<?php echo $this->formCollection($form) ?>
<?php echo $this->form()->closeTag($form) ?>

请参阅此处的参考指南

请注意以下几点:

准备()方法。您必须在视图中呈现任何内容之前调用它(此函数仅用于在视图中调用,而不是在控制器中)。

于 2013-01-28T15:34:57.470 回答