为了使我们的留言本有用,我们需要一个可以提交新条目的表单。
我们第一件事是要创建事实表单的类。为了创建空的表单类,执行:
% zf create form Guestbook
Creating a form at application/forms/Guestbook.php
Updating project profile '.zfproject.xml'
这将创建 application/forms/ 目录,同时带有 Guestbook.php 这个类文件。打开文件,更新内容如下:
以上的表单定义了5个元素:一个邮件地址字段,一个留言字段,一个 CAPTCHA 用来防止拉圾提交,一个提交按钮,和一个 CSRF 保护口令。
下一步,我们需要添加一个 signAction() 到我们的 GuestbookController,它将接受提交,处理表单。为了创建行为和相关的视图脚本,执行以下命令:
% zf create action sign Guestbook
Creating an action named sign inside controller
at application/controllers/GuestbookController.php
Updating project profile '.zfproject.xml'
Creating a view script for the sign action method
at application/views/scripts/guestbook/sign.phtml
Updating project profile '.zfproject.xml'
正如你所看到的,这将创建一个 signAction() 方法到我们控制器中,同时还有相对应的视图脚本。
让我们向我们的 guestbook 控制器的 sign 行为添加一些逻辑。我们需要首先检查我们收到的是一个 POST 还是一个 GET 请求;在后面一种情况下,我们只需简单的显示表单。然而,如果我们得到的是一个 POST 请求,我们需要验证提交的表单数据,并且,如果是合法的话,创建一个新的条目并保存它。这个逻辑看起来是这样的:
当然,我们也要编辑视图脚本;编辑 application/views/scripts/guestbook/sign.phtml 如下:
注意:更好看的表单
。。。。。。
注意:检查
现在浏览 http://localhost/guestbook/sign。你应该在你的浏览器中能看到: