本篇文章是对在zend Farmework下如何创立一个FORM表单的方法进行了详细的分析介绍需要的朋友参考下 首先让我们设置一下我们的程序让Zend能够自动载入方法不需要我们手动的去载入
复制代码 代码如下: require_once Zend/Loader/Autoloaderphp //载入自动加载类 $loader = Zend_Loader_Autoloader::getInstance();//自动实例化 $loader>registerNamespace(Application_);//注册命名空间(只有系统默认的和注册的才可以被自动载入) $loader>registerNamespace(array(Foo_ Bar_)); //多个命名空间的注册方法 $loader>setFallbackAutoloader(true); //一个增加消耗的方法不需要命名空间直接载入所有类(不被推荐使用) 然后请注意你的包含目录是否已经包含了你自己的需被载入的目录 复制代码 代码如下: set_include_path(implode(PATH_SEPARATOR array( realpath(APPLICATION_PATH //library) realpath(APPLICATION_PATH /forms/) get_include_path() ))); //这里我们包含了我们的forms目录方便程序的被载入 确认下form的目录 在application/forms/下 建立一个 Guestbookphps 作为我们form的类文件如下 复制代码 代码如下: <?php class Application_Form_Guestbook extends Zend_Form { public function init() { // Set the method for the display form to POST $this>setMethod(post);//设置提交方式
// Add an email element $this>addElement(text email array(//原件的类型名词和一些其他信息的定义 label => Your email address: required => true filters => array(StringTrim) validators => array( EmailAddress ) ));
// Add the comment element $this>addElement(textarea comment array( label => Please Comment: required => true validators => array( array(validator => StringLength options => array( )) ) ));
// Add a captcha $this>addElement(captcha captcha array( label => Please enter the letters displayed below: required => true captcha => array( captcha => Figlet wordLen => timeout => ) ));
// Add the submit button $this>addElement(submit submit array( ignore => true label => Sign Guestbook ));
// And finally add some CSRF protection $this>addElement(hash csrf array( ignore => true )); } } 然后添加一个路由控制文件 applictaion/controller/GuestbookControllerphp 复制代码 代码如下: <?php class GuestbookController extends Zend_Controller_Action { // snipping indexAction() public function signAction() { $request = $this>getRequest();//获取接受到得信息 // include_once("/application/forms/Guestbookphp"); 手动加载类只有不能自动载入时才需要 $form = new Application_Form_Guestbook;//实例化这个方法
if ($this>getRequest()>isPost()) {//如果是POST传递的结果 if ($form>isValid($request>getPost())) {//判断传递是否有效 $comment = new Application_Model_Guestbook($form>getValues()); $mapper = new Application_Model_GuestbookMapper(); $mapper>save($comment); return $this>_helper>redirector(index); } }
$this>view>form = $form;//将表单赋值给试图 } } 最后添加一个简单的sign视图文件即可 地址application/views/scripts/guestbook/sginphp 复制代码 代码如下: Please use the form below to sign our guestbook! <?php $this>form>setAction($this>url()); echo $this>form; |