Zend Framework Как вывести список элементов формы, используя частичный цикл - PullRequest
4 голосов
/ 17 декабря 2009

Я новичок в Zend Framework и не уверен, возможно ли это.

Я хочу использовать частичную петлю для создания таблицы с полями формы.

Я использую этот код в представлении:

<!-- 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-> getElement .., но не работал

Спасибо!

Ответы [ 2 ]

6 голосов
/ 17 декабря 2009

Функция 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(); ?>
0 голосов
/ 10 апреля 2011

Почему бы просто не использовать декоратор (HtmlTag)? Я использую Div's

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

но стол не должен быть намного сложнее

...