在ZF2中将数据绑定到我的表单中

时间:2015-04-21 15:30:51

标签: php zend-framework2 zend-form

我有一个表单,我在我的视图中使用。我的观点如下:

<?php
$this->titel = "Arbeitskalender Termine";
$this->headTitle($this->titel);
foreach($this->aktermine as $termin) :
    $this->nr=$this->escape($termin->nr);
    $this->kopfnr=$this->escape($termin->kopfnr);
    $this->datum=$this->escape($termin->datum);
    $this->zeit=$this->escape($termin->zeit);
    $this->thema=$this->escape($termin->thema);
    echo $this->form ;
endforeach;
?>

我得到我的表格(这是一张表)我得到了与表格中记录相同的表格重复。但我没有在表单字段中看到任何记录。怎么了?如何在每个字段中获取数据集对象的值? 如果我在html中使用viewcript它可以正常工作。

1 个答案:

答案 0 :(得分:1)

使用表单的bind()方法将模型附加到表单。每个字段的值将从模型中提取并显示在表单中。

  

这有两种使用方式:

     
      
  • 显示表单时,每个元素的初始值为   从模型中提取。

  •   
  • isValid()中成功验证后,表单中的数据将被放回模型中。

  •   

要使用此方法,您需要在模型getArrayCopy()中实施exchangeArray()Aktermine

所以在你的行动中,你会有这样的事情:

$form = new YourForm();
$form->bind($aktermine);

请参阅文档中的Editing an Album示例。

另请阅读Binding Objects to Forms

如果您使用的是学说,只需将getArrayCopy()添加到您的实体中,如下所示:

public function getArrayCopy(){
  return get_object_vars($this);
}

然后在你的控制器动作中:

$form->bind($yourEntity);