Zend framework 在Zend表单中写入超链接?

Zend framework 在Zend表单中写入超链接?,zend-framework,zend-form,Zend Framework,Zend Form,我正在我的项目中使用Zend框架。我使用Zend表单制作了一个登录表单,该表单包含用户Id和密码字段以及一个提交按钮。在登录表单中,一切正常 如何在登录表单中添加两个超链接,一个用于注册,另一个用于忘记密码?在您打印表单的viewscript文件中,例如login.phtml echo $this->form; 您可以指定任何其他html标记,例如链接 echo "<p><a href='".$this->url ( array ('controller' =&g

我正在我的项目中使用Zend框架。我使用Zend表单制作了一个登录表单,该表单包含用户Id和密码字段以及一个提交按钮。在登录表单中,一切正常


如何在登录表单中添加两个超链接,一个用于注册,另一个用于忘记密码?在您打印表单的viewscript文件中,例如
login.phtml

echo $this->form;
您可以指定任何其他html标记,例如链接

echo "<p><a href='".$this->url ( array ('controller' => 'authentication',
                                        'action' => 'lostPW' ) )."'>
      Lost pw </a></p>";
echo“

”;
因此,实际上您并不是在表单本身中编写它,而是在回送表单的视图脚本中编写它。

尝试以下操作:

$passwordElement->setDescription('<a href="">Forgot password?</a>');
$passwordElement->getDecorator('Description')->setOption('escape', false);
$passwordElement->setDescription(“”);
$passwordElement->getDecorator('Description')->setOption('escape',false);
Description decorator将在您的字段旁边添加此文本。

您可以使用


或者,创建一个自定义Zend_Form_元素来呈现HTML元素或ViewScript。

我以前也遇到过同样的问题,通过创建自定义Zend_Form_元素来解决它,如下所示:

class Zend_Form_Element_Html extends Zend_Form_Element_Xhtml {
    /**
     * Default form view helper to use for rendering
     * @var string
     */
    public $helper = 'formNote';

    public function isValid($value, $context = null) {
        return true;
    }
}
因此,在您的表单中,您只需执行以下操作:

$tag = new Zend_Form_Element_Html('forgetPassword');
$tag->setValue('<a href="/forgotten-pwd">Forgotten your password?</a>');
$this->addElement($tag);
$tag=new Zend_Form_Element_Html('forgetPassword');
$tag->setValue(“”);
$this->addElement($tag);

希望这有帮助

仅适用于直接在表单中使用的装饰程序,请尝试:

        $this->addElement(new Zend_Form_Element_Note(array(
            'name' => 'forgotten',
            'value' => __('Forgot your password?'),
            'decorators' => array(
                array('ViewHelper'),
                array('HtmlTag', array(
                    'tag' => 'a',
                    'href' => $this->getView()->url(array(
                        'remind'
                    ))
                )),

            )
        )), 'forgotten');