Php 以Zend格式设置描述

Php 以Zend格式设置描述,php,zend-framework,zend-form,zend-decorators,Php,Zend Framework,Zend Form,Zend Decorators,我正在我的项目中使用Zend框架。我想在我的表单中添加一个描述/注释,如 标有*的字段是必填字段 但是我没有发现如何向表单添加描述以及如何与装饰器一起使用它 我们将非常感谢您的帮助。谢谢 class FormDecorators { public static $simpleElementDecorators = array( array('ViewHelper'), array('Label', array('tag' => 'span', 'e

我正在我的项目中使用Zend框架。我想在我的表单中添加一个描述/注释,如

标有*的字段是必填字段

但是我没有发现如何向表单添加描述以及如何与装饰器一起使用它

我们将非常感谢您的帮助。谢谢

 class FormDecorators {
    public static $simpleElementDecorators = array(
        array('ViewHelper'),
        array('Label', array('tag' => 'span', 'escape' => false, 'requiredPrefix' => '<span class="required">* </span>')),
        array('Description', array('tag' => 'div', 'class' => 'desc-item')),
        array('Errors', array('class' => 'errors')),
        array('HtmlTag', array('tag' => 'div', 'class' => 'form-item'))
    );
    }
将描述添加到一个元素中,然后您可以将描述样式显示在底部的某个位置,我希望这会有所帮助,祝您度过愉快的一天。

有两个选项:

使用来自装饰师或 扩展Zend_Form_元素以创建自定义 要素 我会选择后者,因为将原始html代码的一部分添加到表单中是非常常见的,不仅在元素之前或之后,而且在元素之间

你应该这样做:

class My_Form_Element_Raw extends Zend_Form_Element
{
    protected $raw_html;
    public function setRawHtml($value)
    {
        $this->raw_html = $value;
        return $this;
    }
    public function getRawHtml()
    {
        return $this->raw_html;
    }
    public function render()
    {
        // you can use decorators here yourself if you want, or wrap html in container tags
        return $this->raw_html;
    }
}

$form = new Zend_Form();
// add elements
$form->addElement(
    new My_Form_Element_Raw(
        'my_raw_element', 
        array('raw_html' => '<p class="highlight">fields marked by * are mandatory</p>')
    )
);
echo $form->render();
扩展Zend_Form_元素时,不需要覆盖setOption/s、getOption/s方法。 Zend在内部使用set*和get*以及protected属性来检测元素选项,如本例中的protected$raw_html;和公共函数setRawHtml$value和公共函数getRawHtml
此外,命名您的属性$raw_html将分别接受“raw_html”和“rawHtml”两个选项

向表单中添加其他文本的最简单方法是将适当的html添加到页面视图中:

<div>
    <h4>fields marked by * are mandatory</h>
    <?php echo $this->form ?>
</div>

我相信,如果您愿意,您可以使用css显示您想要的任何注释。

您可以输入一段代码吗?请参阅
<div>
    <h4>fields marked by * are mandatory</h>
    <?php echo $this->form ?>
</div>
<article class="login">
    <form action="<?php echo $this->element->getAction() ?>"
          method="<?php echo $this->element->getMethod() ?>">
        <table>
            <tr>
                <th>Login</th>
            </tr>
            <tr>fields marked by * are mandatory</tr>
            <tr>
                <td><?php echo $this->element->name->renderViewHelper() ?></td>
            </tr>
            <tr>
                <td><?php echo $this->element->password->renderViewHelper() ?></td>
            </tr>
            <tr>
                <td><?php echo $this->element->submit ?></td>
            </tr>
        </table>
    </form>
</article>
dt label.required:before {
    content: "* ";
    color: #ff0000;
}