Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 以下代码的zend表单装饰器是什么?_Zend Framework_Decorator - Fatal编程技术网

Zend framework 以下代码的zend表单装饰器是什么?

Zend framework 以下代码的zend表单装饰器是什么?,zend-framework,decorator,Zend Framework,Decorator,装饰师应该如何将这两个元素并排放置。通常它呈现的是默认zend的“dl-dt-dd”结构。我需要在同一个dd中使用这两个元素,在dt中使用一个通用的标签 $card_expmonth = new Zend_Dojo_Form_Element_FilteringSelect('card_expmonth'); $card_expmonth->setLabel('Card Expiration') ->setMultiOptions(array(1=>'1','2','3'

装饰师应该如何将这两个元素并排放置。通常它呈现的是默认zend的“dl-dt-dd”结构。我需要在同一个dd中使用这两个元素,在dt中使用一个通用的标签

$card_expmonth = new Zend_Dojo_Form_Element_FilteringSelect('card_expmonth');
$card_expmonth->setLabel('Card Expiration')
    ->setMultiOptions(array(1=>'1','2','3','4','5','6','7','8','9','10','11','12'))
    ->setAttrib('style','width:100px;')
    ->setRequired(true);

$card_expyear = new Zend_Dojo_Form_Element_FilteringSelect('card_expyear');
$card_expyear->setMultiOptions(array(2011=>'2011','2012','2013','2014','2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025'))
    ->setAttrib('style','width:100px;')
    ->setRequired(true);

请有人帮帮我。

我建议您在这种情况下不要使用装饰器:

$card_expmonth->setDecorators(array('ViewHelper'));
$card_expyear->setDecorators(array('ViewHelper'));
鉴于:

<form action="<?php echo $form->getAction() ?>"
      method="<?php echo $form->getMethod() ?>"
      enctype="<?php echo $form->getEnctype() ?>"
      accept-charset="<?php echo $form->getAttrib('accept-charset') ?>"
      id="<?php echo $form->getId() ?>">
    <dl>
        <dt><?php echo $form->card_expmonth->getLabel() ?></dt>
        <dd>
            <?php echo $form->card_expmonth ?>
            <?php echo $form->card_expyear ?>
        </dd>
    </dl>
</form>

没有测试。如果不起作用,告诉我


也请阅读

如果这可以通过装饰师来完成,那么这将是最好的。这里不可能吗?它将是DijitElement而不是ViewHelper。谢谢你给了我openOnly和closeOnly的概念。
$card_expmonth->setDecorators(array(
    'ViewHelper',
    array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'openOnly' => true)),
    array('Label', array('tag' => 'dt')),
    array(array('dl' => 'HtmlTag'), array('tag' => 'dl', 'openOnly' => true))
));

$card_expyear->setDecorators(array(
    'ViewHelper',
    array(array('dd' => 'HtmlTag'), array('tag' => 'dd', 'closeOnly' => true)),
    array(array('dl' => 'HtmlTag'), array('tag' => 'dl', 'closeOnly' => true))
));