Zend Form - метод извлечения значения метки из класса формы для отображения в сценарии просмотра?

Я нахожусь в процессе переключения своих форм, чтобы использовать View Script в качестве их декораторов. Примеры, которые я видел до сих пор, делают следующее в сценарии просмотра:

<td><label for='textEmail'>Email:</label></td>
<td><?php echo $this->element->textEmail; ?></td>

Я хотел бы найти способ отображения текста в метке из объекта формы.

class RegisterForm extends Zend_Form {
public function init () {
    $this->setAction('')
        ->setMethod('post')
        ->setAttrib('id','formRegister');

    $this->addElement('text', 'textEmail', array('label' => 'Email: '));
    $oEmail = $this->getElement('textEmail')
        ->setRequired(true)
        ->addFilter('StringTrim')
        ->addValidator('EmailAddress');
    $oEmail->setDecorators(array('ViewHelper', 'Errors'));

    $this->setDecorators(array(array('ViewScript', array('viewScript' => 'forms/RegisterForm.phtml'))));
    }
}

Выше показано, как определяется мой объект формы. Кто-нибудь знает, как получить доступ к определенному значению метки? Возможно, в следующем формате?

<?php echo $this->element->textEmail->label; ?>

Естественно это не работает. :р Спасибо~


person Jayawi Perera    schedule 09.09.2009    source источник


Ответы (1)


$this->элемент->getLabel()

Вот мой скрипт просмотра для стандартных полей:

<div class="field<?php if($this->element->hasErrors()): ?> errors<?php endif; ?>" id="field_<?php echo $this->element->getId(); ?>">
    <?php if (0 < strlen($this->element->getLabel())) : ?>
        <?php echo $this->formLabel($this->element->getName(), $this->element->getLabel());?>
    <?php endif; ?>
    <span class="value"><?php echo $this->{$this->element->helper}(
        $this->element->getName(),
        $this->element->getValue(),
        $this->element->getAttribs()
    ) ?></span>
    <?php if ($this->element->hasErrors()) : ?>
        <?php echo $this->formErrors($this->element->getMessages()); ?>
    <?php endif; ?>
    <?php if (0 < strlen($this->element->getDescription())) : ?>
        <span class="hint"><?php echo $this->element->getDescription(); ?></span>
    <?php endif; ?>
</div>
person Sonny    schedule 27.01.2010
comment
Вы сэкономили мои 10 минут и большие пальцы (y) для этого. - person NullPointer; 19.06.2014