2011-05-04 51 views
15

我在我的项目中使用了Zend-Framework。我使用Zend表单创建了一个登录表单,其中包含用户标识和密码字段以及提交按钮。在登录表单中一切正常。在Zend Form中写超链接?

如何添加登录表单这是一个用于的注册等为忘记密码两个超链接?

回答

11

我之前遇到过同样的问题,并通过创建自定义Zend_Form_Element_Html解决了这个问题,具体如下:

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); 

希望这会有所帮助!

+0

嘿感谢,这是我在问什么..... – Pushpendra 2011-05-12 06:30:16

7

在您打印表单的视图文件中,例如login.phtml

echo $this->form; 

您可以指定任何其他html标记,例如,链接

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

所以,你实际上不写在窗体本身,而是在视图脚本你回显窗体。

3

试试这个:

$passwordElement->setDescription('<a href="">Forgot password?</a>'); 
$passwordElement->getDecorator('Description')->setOption('escape', false); 

描述装饰会添加字段旁边这个文本。

1

仅用于装饰的形式尝试直接使用:

 $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');