Zend Framework如何使用partialLoop列出表单元素

时间:2009-12-17 19:02:28

标签: php zend-framework zend-form

我是Zend Framework的新手,并不确定这是否可行。

我想使用partialloop创建一个包含表单字段的表。

我在视图中使用此代码:

<!-- code in views/scripts/request/edit.phtml -->

<table cellpadding='0' cellspacing='0'>
    <tr>
        <th>Cliente</th>
        <th>Descripcion</th>
    </tr>        
    <?php echo $this->partialLoop('partials/_solicitud-row.phtml', $this->form); ?>        
</table>

在部分我试过这个:

<!-- code in views/scripts/partials/_solicitud-row.phtml -->
<tr>    
<td><?php  echo $this->key . "=" . $this->value; ?></td>

</tr>

这个

 <!-- code in views/scripts/partials/_solicitud-row.phtml -->
<tr>     
<td><?php  echo $this->Descripcion; ?></td>
<td><?php  echo $this->cliente; ?></td>
<td><?php  echo $this->FechaHoraCreada; ?></td>
<td><?php  echo $this->Monto; ?></td>

</tr>

使用这个我得到表格的标题(<tr><th>Cliente</th><th>Descripcion</th></tr>),但仅此而已。我知道部分被处理,因为使用第一个部分等于“=”被列出。

我正在做什么才有意义?有没有办法访问表单元素? 我尝试了其他选项,比如$ this-&gt; getElement ..,但没有用

谢谢!

2 个答案:

答案 0 :(得分:6)

partialLoop函数可以处理您的表单元素,但您需要备份一下:

  <!-- code in views/scripts/request/edit.phtml -->
  <?php
    $model = array();
    foreach ( $this->form as $element ) {
      // include the $element itself, instead of the
      // $element public properties (which are few)
      $model[] = array('element' => $element);
    }
  ?>
  <?php echo $this->partialLoop('partials/_solicitud-row.phtml', $model); ?>

  <!-- code in views/scripts/partials/_solicitud-row.phtml -->
  <?php  echo $this->element->getName(). "=" . $this->element->getValue(); ?>

答案 1 :(得分:0)

为什么不使用(HtmlTag)装饰器?我用div的

$this->setElementDecorators(array(
        array('HtmlTag', array('tag' => 'div', 'class'=>'formRow'))
    ));

但表格不应该困难