代码之家  ›  专栏  ›  技术社区  ›  Hacker

使用zend窗体装饰器

  •  1
  • Hacker  · 技术社区  · 15 年前
    <div class="field50Pct">
     <div class="fieldItemLabel">
      <label for='First Name'>First Name:</label>
     </div>
     <div class="fieldItemValue">
      <input type="text" id="firstname" name="firstname" value="" />
     </div>
    </div>
    
    <div class="clear"></div>
    

    我希望代码在源代码中显示为这样。如何使用decorator在zend中编写相同的东西?

      $firstname = new Zend_Form_Element_Text('FirstName');
            $firstname->setLabel('FirstName')
                     ->setRequired(true)
                     ->addFilter('StripTags')
                     ->addFilter('StringTrim')
                     ->addErrorMessage('Error in First Name')
                     ->addValidator('NotEmpty');
    
    1 回复  |  直到 15 年前
        1
  •  5
  •   Keyne Viana    15 年前

    这似乎对我有用: (与 <div class="clear"></div> 输入后)

    $firstname->setDecorators(array(
            'ViewHelper',
            'Description',
            'Errors',
            array('HtmlTag', array('tag' => 'div', 'class' => 'fieldItemValue')),
            array(array('labelDivOpen' => 'HtmlTag'), 
                  array('tag' => 'div', 
                        'placement' => 'prepend', 
                        'closeOnly' => true)),
            'Label',
            array(array('labelDivClose' => 'HtmlTag'), 
                  array('tag' => 'div', 
                        'class' => 'fieldItemLabel', 
                        'placement' => 'prepend', 
                        'openOnly' => true)),
            array(array('fieldDiv' => 'HtmlTag'), 
                  array('tag' => 'div', 'class' => 'field50Pct')),
            array(array('divClear' => 'HtmlTag') , 
                  array('tag' => 'div' ,
                        'class' => 'clear',
                        'placement' => 'append'))
        ));