Zend Framework如何为所有页面中显示的表单(在同一页面上进行验证)设置操作

时间:2010-11-29 12:19:59

标签: zend-framework

我有一个表单(登录表单)出现在所有页面中(如果用户未登录)。

alt text

表单是从视图助手创建的,然后直接在layout.phtml中调用

class Zend_View_Helper_LoginForm extends Zend_View_Helper_Abstract
{
public function loginForm()
{

    $login = new Application_Form_Login();
    return $login;

}

}    


<?php if(!$this->isLoggedIn()): ?>          
        <div id="login">
            New User? <a href="#">Register Here</a>
            <?php echo $this->loginForm(); ?>
            <a href="#">Forgot Password!</a>
        </div>
        <?php endif; ?>

现在如何设置此表单的操作,以便我可以验证同一页面中的字段?

4 个答案:

答案 0 :(得分:2)

Matthew Weier O'Phinney(ZF程序员领导者)有一篇博文,内容是关于创建与您的需求完全相同的可重用小部件

你应该试一试,

http://weierophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html

答案 1 :(得分:1)

您可以在其他页面上对其进行验证,并在验证后重定向。此外,您可以通过ajax验证它。

答案 2 :(得分:0)

通常您将其发布到登录页面,如果失败,您可以重定向用户,设置正确的http标头并显示错误消息

答案 3 :(得分:0)

我们通常做的是将表单发送到不同的操作,并在该操作视图中呈现专用表单。如果没有错误,则会在不注意的情况下重定向用户。如果出现错误,表单将显示在主要内容区域中,并显示正确的错误消息。通常问题是这个表单小部件的区域不够大,无法获得良好的错误消息。