`
yangyz1984
  • 浏览: 34818 次
  • 性别: Icon_minigender_1
  • 来自: 安徽省
社区版块
存档分类
最新评论

Zend Framework 1.10.4手册(ZF的快速启动五)

阅读更多

为了使我们的留言本有用,我们需要一个可以提交新条目的表单。

我们第一件事是要创建事实表单的类。为了创建空的表单类,执行:

      % zf create form Guestbook
      Creating a form at application/forms/Guestbook.php
      Updating project profile '.zfproject.xml'

这将创建 application/forms/ 目录,同时带有 Guestbook.php 这个类文件。打开文件,更新内容如下:

 

  1. <?php   
  2. class Application_Form_Guestbook extends Zend_Form   
  3. {   
  4.     public function init()   
  5.     {   
  6.         // Set the method for the display form to POST   
  7.         $this->setMethod('post');   
  8.         // Add an email element   
  9.         $this->addElement('text''email'array(   
  10.             'label'      => 'Your email address:',   
  11.             'required'   => true,   
  12.             'filters'    => array('StringTrim'),   
  13.             'validators' => array(   
  14.                 'EmailAddress',   
  15.             )   
  16.         ));   
  17.         // Add the comment element   
  18.         $this->addElement('textarea''comment'array(   
  19.             'label'      => 'Please Comment:',   
  20.             'required'   => true,   
  21.             'validators' => array(   
  22.                 array('validator' => 'StringLength''options' => array(0, 20))   
  23.                 )   
  24.         ));   
  25.         // Add a captcha   
  26.         $this->addElement('captcha''captcha'array(   
  27.             'label'      => 'Please enter the 5 letters displayed below:',   
  28.             'required'   => true,   
  29.             'captcha'    => array(   
  30.                 'captcha' => 'Figlet',   
  31.                 'wordLen' => 5,   
  32.                 'timeout' => 300   
  33.             )   
  34.         ));   
  35.         // Add the submit button   
  36.         $this->addElement('submit''submit'array(   
  37.             'ignore'   => true,   
  38.             'label'    => 'Sign Guestbook',   
  39.         ));   
  40.         // And finally add some CSRF protection   
  41.         $this->addElement('hash''csrf'array(   
  42.             'ignore' => true,   
  43.         ));   
  44.     }   
  45. }  

 

以上的表单定义了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 请求,我们需要验证提交的表单数据,并且,如果是合法的话,创建一个新的条目并保存它。这个逻辑看起来是这样的:

 

  1. <?php   
  2. class GuestbookController extends Zend_Controller_Action   
  3. {   
  4.     // snipping indexAction()...   
  5.        
  6.     public function signAction()   
  7.     {   
  8.         $request = $this->getRequest();   
  9.         $form    = new Application_Form_Guestbook();   
  10.         if ($this->getRequest()->isPost()) {   
  11.             if ($form->isValid($request->getPost())) {   
  12.                 $comment = new Application_Model_Guestbook($form->getValues());   
  13.                 $mapper  = new Application_Model_GuestbookMapper();   
  14.                 $mapper->save($comment);   
  15.                 return $this->_helper->redirector('index');   
  16.             }   
  17.         }   
  18.         $this->view->form = $form;   
  19.     }   
  20. }  

 

当然,我们也要编辑视图脚本;编辑 application/views/scripts/guestbook/sign.phtml 如下:

 

  1. <!-- application/views/scripts/guestbook/sign.phtml -->  
  2. Please use the form below to sign our guestbook!   
  3. <?php    
  4. $this->form->setAction($this->url());    
  5. echo $this->form;   

 

注意:更好看的表单
。。。。。。
分享到:
评论

相关推荐

    ZendFramework-1.10.4-minimal

    "ZendFramework-1.10.4-minimal" 这个标题表明我们正在处理的是 Zend Framework 的一个特定版本,即1.10.4,并且是精简版(minimal)。这意味着它可能包含了框架的核心组件,但可能去除了某些非必要的或附加的模块,...

    zend framework 最新手册

    最新手册针对的是 Zend Framework 1.10.4 版本,这个版本包含了多项改进和优化,确保了框架的稳定性和性能。 **主要组件** 1. **控制器(Controllers)**:在 MVC 模式中,控制器接收用户请求,处理业务逻辑,并...

    hdf5-1.10.4

    6. 版本控制:HDF5-1.10.4是HDF5的一个特定版本,它可能引入了新的特性和修复了一些已知问题。例如,此版本可能提高了性能、增强了稳定性或添加了对新硬件和操作系统的支持。 在机器学习领域,如安装Caffe这样的...

    jquery-ui-1.10.4

    总结,jQuery UI 1.10.4是一个强大而全面的前端UI框架,它提供的组件丰富多样,易用性强,能够帮助开发者快速构建功能丰富的交互式Web应用。通过熟练掌握jQuery UI,开发者可以大大提高工作效率,提升用户界面的用户...

    jquery-2.1.0 jqueryUI1.10.4

    而jQuery UI则是jQuery的一个扩展,提供了一系列用户界面组件,使得开发者能够快速构建交互性强、用户体验良好的网页应用。本文将深入探讨jQuery 2.1.0版本和jQuery UI 1.10.4版本的主要特性和功能。 首先,让我们...

    dojo-release-1.10.4

    "dojo-release-1.10.4"是Dojo框架的一个稳定版本,发布于2015年,它提供了大量的功能和改进,以支持开发人员构建高效、响应式的网页应用。 1. **Dojo核心模块**:Dojo的核心模块包括`dojo/_base`,它包含了基本的...

    jquery-ui-1.10.4.custom

    这个名为 "jquery-ui-1.10.4.custom" 的压缩包文件,很显然是一个自定义版本的 jQuery UI,版本号为 1.10.4。在本文中,我们将深入探讨 jQuery UI 的核心功能、使用场景以及其自定义版本的特性。 ### jQuery UI 的...

    numpy-1.10.4.zip

    这种数据结构使得Numpy能够快速执行向量、矩阵和数组操作,极大地提高了计算速度。 Numpy提供了丰富的数学函数库,如四则运算、三角函数、指数和对数函数、统计函数等,可以直接作用于ndarray上,无需循环。例如,...

    jquery-ui-1.10.4.min.js

    jquery-ui-1.10.4.min.js下载

    consul_1.10.4_linux_amd64

    当服务出现故障时,Consul 可以快速识别并通知系统,避免了故障扩散。 **Key/Value 存储** Consul 内置了一个简单的 Key/Value 存储,可用于存储和检索配置信息。这种分布式的 KV 存储允许开发者以集中式的方式管理...

    jquery-ui-1.10.4.zip

    《jQuery UI 1.10.4:深入解析与应用》 jQuery UI 是一个基于 jQuery 库的强大且灵活的用户界面工具集,它为开发者提供了丰富的组件和交互效果,极大地简化了网页界面的设计和开发。在本文中,我们将深入探讨 ...

    gstreamer1-plugins-bad-free-1.10.4-3.el7.i686.rpm

    gstreamer1-plugins-bad-free-1.10.4-3.el7.i686.rpm

    jquery-ui-v1.10.4.js

    jquery-ui-v1.10.4.js.这个有用到的就不必说了.加点资源分希望大家能理解

    jquery-ui-1.10.4.custom.zip

    《jQuery UI 1.10.4 自定义版本详解》 jQuery UI 是一个基于 jQuery JavaScript 库的可扩展用户界面库。它提供了多种可重用的组件,包括对话框(Dialog)、滑块(Slider)、日期选择器(Datepicker)和许多其他交互...

    TortoiseSVN-1.10.3.28489-x64-svn-1.10.4

    TortoiseSVN-1.10.3.28489-x64-svn-1.10.4

    numpy-1.10.4.tar.gz

    numpy-1.10.4.tar.gz

    jquery-ui-v1.10.4.css

    jquery-ui-v1.10.4.css.必备资源.加点资源分希望大家能理解

    jquery-ui-1.10.4.custom.min.js

    java

Global site tag (gtag.js) - Google Analytics