【发布时间】:2014-01-28 14:33:51
【问题描述】:
大家好,我正在尝试用 Zend 渲染这个 html 结构:
<div id="medias" class="item">
<h2> Medias </h2>
<a id="addmedia" href="#">
<img alt="" src="images/bigbtn-add.png">
</a>
</div>
更新 1:
这就是我创建 media_img 元素的方式:
$media_img = new Zend_Form_Element_Image('media_img');
$media_img->setImage("/img/bigbtn-add.png");
$this->addElement($media_img);
使用这个:
$this->setElementDecorators(array(
'ViewHelper',
'HtmlTag', array('HtmlTag', array('tag' => 'a', 'id' => 'addmedia','href' => '#'))
),
array('media_img')
);
我正确渲染了这部分代码:
<a id="addmedia" href="#">
<img alt="" src="images/bigbtn-add.png">
</a>
如何在 h2 前面添加,然后将这些元素包装到我的 div 中?
更新 2:
感谢@Mubo 的帮助,我渲染了这个html:
<h2 class="hint">Medias</h2>
<a id="addmedia" href="#">
<input id="media_img" type="image" src="/img/bigbtn-add.png" name="media_img">
</a>
现在我只需要将所有这些行包装在一个 div 中。 装饰器现在看起来像这样:
$this->setElementDecorators(array(
'ViewHelper',
'HtmlTag', array('HtmlTag', array('tag' => 'a', 'id' => 'addmedia','href' => '#')),
array('Description', array('tag' => 'h2', 'placement' => 'prepend')),
),
array('media_img')
);
缺少什么?
感谢您的帮助。
更新 3:我还是想不通...
【问题讨论】:
-
您是否对所有元素都使用了一些复杂的装饰器,或者您只想为这一领域编写装饰器?因为另一个选项是手动呈现这个表单,你可以在那里定义这个标记。
-
手动使用 HTML 即可。
-
@s7anley 我想只使用装饰器来实现这一点。如果我能做到这一点,那就更好了。我迷路了!
标签: zend-framework zend-form zend-form-element