在Zend表单中写下超链接并使用路由?

时间:2012-02-21 09:40:15

标签: zend-framework

我有一个登录表单,想在里面添加一个“忘记密码”链接。我发现你可以使用这个描述来做到这一点。但我现在已经开始改变所有与路由一起工作的东西,并且也希望将它用于忘记密码链接。有没有机会这样做?我找不到解决方案,你们谁知道怎么做?

 $password = new Zend_Form_Element_Password('login_password', array(
    'label'         => 'Password',
    'description'   => '<a href="account/lost">Forgot Password ?</a>',
            'required'  => true,    
            ));
$password->getDecorator('description')->setOptions(array('escape' => false, 'placement' => 'APPEND')); 

2 个答案:

答案 0 :(得分:2)

我之前遇到过同样的问题,并在

得到答案

Write hyperlink inside the Zend Form?

也可以帮助你......

答案 1 :(得分:0)

创建Zend_Form时,您无权访问View_Helpers,因为表单不需要视图实例。因此,您必须在表单的init-method中获取视图或稍后添加描述(我更喜欢后者)。

当以第一种方式执行时,您必须获取Zend_Controller_Front实例然后获取其视图,最后调用视图助手,例如该视图中的Zend_View_Helper_Url。

后者可以通过稍后添加描述来实现,例如,当您将表单传递给视图时(或在将其传递给视图之前在控制器中):

<?php
    $description = '<a href="' . $this->url([...]); . '"'>forgot password?</a>
    $this->form->getElement('login_password')->setDescription($description);
    echo $this->form;
?>