Ben bir sayfada birkaç kez yeniden kullanmak istediğiniz bir Zend_Form
nesne var. Ben yaşıyorum sorun render oluyor her seferinde aynı eleman kimlikleri olmasıdır. Ben tüm IDS benzersiz bir önek vererek ya da formu işlemek her zaman soneki için bir yöntem bulmak için yapamaz oldum.
Complete Solution
Subclass Zend_Form
:
class My_Form extends Zend_Form
{
protected $_idSuffix = null;
/**
* Set form and element ID suffix
*
* @param string $suffix
* @return My_Form
*/
public function setIdSuffix($suffix)
{
$this->_idSuffix = $suffix;
return $this;
}
/**
* Render form
*
* @param Zend_View_Interface $view
* @return string
*/
public function render(Zend_View_Interface $view = null)
{
if (!is_null($this->_idSuffix)) {
// form
$formId = $this->getId();
if (0 < strlen($formId)) {
$this->setAttrib('id', $formId . '_' . $this->_idSuffix);
}
// elements
$elements = $this->getElements();
foreach ($elements as $element) {
$element->setAttrib('id', $element->getId() . '_' . $this->_idSuffix);
}
}
return parent::render($view);
}
}
Görünümü komut döngü:
<?php foreach ($this->rows as $row) : ?>
<?php echo $this->form->setDefaults($row->toArray())->setIdSuffix($row->id); ?>
<?php endforeach; ?>