gpt4 book ai didi

php - Zend 表单 : How do I make it bend to my will?

转载 作者:IT王子 更新时间:2023-10-29 00:53:43 24 4
gpt4 key购买 nike

我已经多次阅读该手册,搜索了 Google 提供的有关该主题的帖子,我什至还买了几本与 ZF 相关的书籍。现在,为什么我仍然感到困惑?

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

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

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

最佳答案

Barrett Conrad 的建议正是我的建议。另外请记住,您不需要使用表单对象来呈现您的表单。

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

您的 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):

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

您的表单类反射(reflect)了您的 HTML 表单,您类中的每个元素都有自己的验证器和要求。回到您的操作中,您可以创建表单类的实例并针对该表单验证您的发布/获取变量:

$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 的大部分优势在于它的验证和过滤属性。这给了你那种力量。像这样的解决方案的主要缺点是您的 View 脚本 HTML 表单可能会与您的表单类不同步。

关于php - Zend 表单 : How do I make it bend to my will?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/534870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com