Witam,

Dzisiaj życie mnie zmusiło do zastosowania klasy SubForm. Do momentu gdy uzywałem Zend_Form wszystko było ok. Elementy mogłem generowa c przy pomocy ViewScript.
Przykłądowy plik widoku generujący element 'input'

  1. <div class="group-element">
  2.  
  3. <?php if ($this->element->hasErrors()) : ?>
  4. <div class="errors">
  5. <?= $this->formErrors($this->element->getMessages()) ?>
  6. </div>
  7. <?php endif; ?>
  8.  
  9.  
  10. <?php if ($this->element->getLabel() != '') : ?>
  11. <div class="label <?php if($this->element->hasErrors()): ?> error-label<?php endif; ?>">
  12. <?= $this->formLabel($this->element->getName(), $this->_($this->element->getLabel())) ?>:
  13. <?php if ($this->element->isRequired()) echo '*'; ?>
  14. </div>
  15. <?php endif; ?>
  16.  
  17.  
  18. <?php
  19. $options = NULL;
  20. if (method_exists($this->element, 'getMultiOptions'))
  21. $options = $this->element->getMultiOptions();
  22. ?>
  23.  
  24. <div class="element">
  25. <?= $this->{$this->element->helper}(
  26. $this->element->getName(),
  27. $this->element->getValue(),
  28. $this->element->getAttribs(),
  29. $options
  30. ) ?>
  31.  
  32. <div class="clear"></div>
  33.  
  34. <?php if ($this->element->getDescription() != '') : ?>
  35. <div class="description"><ul><li><?= $this->_($this->element->getDescription()) ?></li></ul></div>
  36. <?php endif; ?>
  37. </div>
  38. </div>


Jednak gdy zastosuję Zend_Form_SubForm (/Zend/View/Helper/FormText.php) powstaje problem. Niestety helper formText który tworzy mi kompletnego imputa nie uwzględnia subformów sad.gif

Co o tym myślicie, jak można to poprawnie użyć aby pole nazwa pola input było tworzona tak jak powinna ?

EDIT:
Oto co mi przyszło do głowy:
W każdym pliku widoku viewScript dodałem taki oto kod:
  1. // ...
  2. $belongsTo = $this->element->getBelongsTo();
  3. if (stristr($belongsTo, 'subform') != false)
  4. $name = $belongsTo.'['.$this->element->getName().']';
  5. else
  6. $name = $this->element->getName();
  7. // ...

I w ten sposób atrybut name jest generowany poprawnie w elementach formularza. smile.gif Jedynym warunkiem jest tutaj aby formularz mial w nazwie słowo 'subform'.
Zastanawiam się czy to jedyne rozwiązanie?

I w ten sposó poprawnie generuje pole name w elementach input