Zend Framework partialLoop kullanarak form öğeleri listelemek için nasıl

2 Cevap php

Ben Zend Framework için yeni ve bu doktorunun bu emin değilim.

Ben form alanları içeren bir tablo oluşturmak için partialloop kullanmak istiyorum.

Ben görünümünde bu kodu kullanıyorum:

<!-- 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>

Ve kısmi i bu çalıştı:

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

</tr>

Bu

 <!-- 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>

Ben (<tr><th>Cliente</th><th>Descripcion</th></tr>) tablonun başlıklarını olsun bu kullanma ama hiçbir şey daha. Ben eşittir "=" listelenen ilk kısmi kullanarak çünkü kısmi işlenir biliyorum.

Does it make sense what I'm doing? is there a way to access the form elements? I tried other options like $this->getElement.., but didn't work

Teşekkürler!

2 Cevap

partialLoop function form elemanları işlemek mümkün, ama biraz yedeklemek gerekiyor:

  <!-- 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(); ?>

Neden sadece bir (HtmlTag) dekoratör kullanmak değil mi? Ben div kullanımı

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

ama tablo çok daha zor olmamalı