Zend Form:如何让它屈服于我的意志?

2024-03-01

我已经多次阅读该手册,我搜索了谷歌提供的有关该主题的帖子,我什至买了几本有关采埃孚的书籍。现在,为什么我还是一头雾水?

我可以使用 Zend_Form 制作一个可以正常验证和运行的表单。我不能做的是制作一个看起来与我希望的完全一样的表单,并带有我希望它具有的错误消息。我想要自定义按钮,我想要时髦的布局,我想要在表单中间插入文本等等。

有没有人有一个简单的方法来实现这些事情?有什么东西让我觉得这个框架节省了我的时间而不是增加了成本?我可以放弃 Zend Form...制作我自己的表单,让它的操作点击页面来验证和处理发布的数据,我可以像输入一样快地完成它,但我真的想“得到”这个并且能够按照明显的意图使用它。

有什么建议吗?对于自定义按钮、时髦的布局和基本(或者更高级,因为有大量的基本教程可以跳过更难的问题)的任何简单“操作方法”,使用 zend 形式“完成工作”?


巴雷特·康拉德的建议正是我的建议。另外,请记住,您不需要使用表单对象来呈现表单。

您可以做的一件事是在视图脚本中创建一个表单,其中包含与表单类同名的元素。

您的 HTML 表单:

<form action="/login/" method="post">
<fieldset>
    <label for="username">Username:</label>
    <input type="text" size="10" name="username" />
    <label for="password">Password:</label>
    <input type="password" size="10" name="password" />
    <input type="submit" />
</fieldset>
</form>

你的班:

class LoginForm extends Zend_Form
{
    public function init()
    {
        $username = $this->createElement('text','username');
        $username->setRequired(true);
        $this->addElement($username);

        $password = $this->createElement('password','password');
        $password->setRequired(true);
        $this->addElement($password);        
    }
}

您的表单类反映您的 HTML 表单,类中的每个元素都有自己的验证器和要求。回到您的操作,您可以创建表单类的实例并根据该表单验证您的 post/get 变量:

$form = new LoginForm();
if ($this->_request->isPost()) {
    if ($form->isValid($this->_request->getParams())) {
        // do whatever you need to do
    } else {
        $this->view->errors = $form->getMessages();
    }
}

使用此方法,您可以将错误消息显示在表单顶部的一组中。

这是一个基本示例,但它允许您完全控制表单的呈现,而无需花时间学习使用装饰器。在我看来,Zend_Form 的大部分优势在于它的验证和过滤属性。这给了你力量。像这样的解决方案的主要缺点是您的视图脚本 HTML 表单可能与表单类不同步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zend Form:如何让它屈服于我的意志? 的相关文章

随机推荐

  • 如何动态从数据库获取.cshtml

    我不得不说 这是一个与以下问题不同的问题 http craftycodeblog com 2010 05 15 asp net mvc render partial view to string http craftycodeblog co
  • R 中的 JSON 到数据帧

    我正在尝试将 json 文件转换为数据框架以进行数据可视化 如果我运行下面的代码 我会得到图 1 library jsonlite jdata lt fromJSON test json data lt as data frame jdat
  • 无法“brew link”未链接的小桶

    which node node bash node command not found brew install node Error node 0 6 18 already installed brew doctor Error You
  • Android Gradle 项目中包含 Apache HttpComponents 的问题

    我尝试使用 build gradle 文件将 httpmime 包含在我的应用程序中 并且一切都可以正常编译 相反 当应用程序尝试实际使用 MultipartEntityBuilder 类时 日志上会出现一堆 WARN 级别消息 表明存在问
  • F#:类型和函数之间可以相互递归吗?

    我可以使用and关键字来设置相互递归的函数定义 我也可以使用and对于相互递归的类型 但是如果类型和函数之间存在相互递归的关系怎么办 是我使该函数成为该类型的成员的唯一选择还是我可以使用类似的东西and这里也 编辑 添加一个简化的伪示例 我
  • Bing API 请求的 Ajax 授权标头是什么?

    我正在向 Bing 搜索 API 发送 ajax 请求 当我将请求放入浏览器中时 我用于请求的 URL 就会起作用 使用 ajax 时出现 401 错误 The authorization type you provided is not
  • CTE 内的 CTE

    是否可以在 CTE 中编写 CTE 我希望它遵循这个逻辑 但解释器不喜欢这段代码 with outertest as with test as select SRnum gamenumber StartOfDistribution Appl
  • Java.lang.NoSuchFieldError:LUCENE_3_6

    我正在运行 1 7 2 elasticsearch 服务器 并使用 org elasticsearch elasticsearch groovy 1 7 2 客户端通过 TransportClient 连接到它 elasticsearch
  • 检查组件是否附加了事件侦听器

    假设有一些
  • 从 Python 句子中提取三元组

    我正在尝试使用Python中的斯坦福依赖解析器从给定的句子中提取三元组 主语 谓语 宾语 有人可以指导我完成这个任务吗 提前致谢 您可以参考以下链接来从句子中提取三元组 https github com tdpetrou RDF Tripl
  • 如何在 MediaPlayer 上设置代理

    在我的音乐流程序中 如何设置代理android media MediaPlayer通过代理网络传输链接文件的类 我了解 NTCredential UsernamePasswordCredential Proxy Authorization
  • 如何使用 github graphql API 创建新的提交?

    我正在尝试使用 github graphql api 创建一个新的提交 使用创建CommitOnBranch https github blog changelog 2021 09 13 a simpler api for authorin
  • 如何删除添加到列表中的最后一个元素?

    我在 C 中有一个列表 我在其中添加列表字段 现在 在添加时我必须检查条件 如果条件满足 那么我需要删除从列表中添加的最后一行 这是我的示例代码 List lt gt rows new List lt gt foreach User use
  • 如何使用 php / symfony 进行 Windows 身份验证

    我在 Symfony 应用程序 Intranet 上工作 我听说可以使用身份验证窗口 而不必使用传统的身份验证窗口登录 有人可以给我 1 或 2 个有关该主题的链接地址吗 我自己搜索过 但找不到合适的关键词 他是WSSE吗 先感谢您 如果您
  • MFC中Tree(CTreeCtrl)中添加特定树项的图标

    我们可以为特定的树项目添加图标吗 我使用以下功能添加带有图标的项目 HTREEITEM InsertItem LPCTSTR lpszItem int nImage int nSelectedImage HTREEITEM hParent
  • 海龟图形 - 如何控制窗口何时关闭?

    我有一个小的 python 脚本 可以绘制一些海龟图形 当我的脚本运行完毕后 海龟屏幕会自动关闭 因此为了能够暂时看到图形 我必须使用time sleep 5 在脚本末尾以延迟关闭 有什么方法可以使其更加动态 即告诉 python 我想自己
  • Vba Excel从关闭的文件中进行vlookup

    我想从关闭文件到活动打开文件进行 vlookup 关闭文件的路径将作为变体给出 可以说mypath C list 我不知道是只设置路径更好还是设置完整路径 路径 文件名 你能帮忙吗 您将需要完整路径 Example Option Expli
  • 使用 SAN 证书时公用名称无效

    我已经为内部服务器生成了一个证书 该证书也可以从外部访问 根据this https stackoverflow com a 5937270 918406所以回答 CN 和 SAN 字段相互补充 因此我将 CN 设置为 server doma
  • 带 MVC 的 PHP 前端控制器

    我正在尝试通过前端控制器设计深入研究 MVC 我想通过使用一行来调用我的整个应用程序 例如在index php中 require once myclass php output new myClass 我很想摆脱 require once
  • Zend Form:如何让它屈服于我的意志?

    我已经多次阅读该手册 我搜索了谷歌提供的有关该主题的帖子 我什至买了几本有关采埃孚的书籍 现在 为什么我还是一头雾水 我可以使用 Zend Form 制作一个可以正常验证和运行的表单 我不能做的是制作一个看起来与我希望的完全一样的表单 并带