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