zf-tutorial/application/controllers/IndexController.php ... function indexAction() { $albums = new Application_Model_DbTable_Albums(); $this->view->albums = $albums->fetchAll(); }
http://farlee.info/archives/zend-framework-add-album.html
zf-tutorial/application/forms/Album.php <?php class Application_Form_Album extends Zend_Form { public function init() { $this->setName('album'); $id = new Zend_Form_Element_Hidden('id'); $id->addFilter('Int'); $artist = new Zend_Form_Element_Text('artist'); $artist->setLabel('Artist') ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty'); $title = new Zend_Form_Element_Text('title'); $title->setLabel('Title') ->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty'); $submit = new Zend_Form_Element_Submit('submit'); $submit->setAttrib('id', 'submitbutton'); $this->addElements(array($id, $artist, $title, $submit)); } }
对于text文本元素,移除不想要的HTML和空白字符
zf-tutorial/application/controllers/IndexController.php ... function addAction() { //实例化Form_Album类,设置submit按钮的label为“Add”,然后赋给view 去呈现 $form = new Application_Form_Album(); $form->submit->setLabel('Add'); $this->view->form = $form; //如果请求的isPost() 为True,即表单已经提交,我们就使用 getPost() 从请求中获取表单数据,并使用isValid() 成员函数验证数据。 if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { //如果表单有效,model 类 Application_Model_DbTable_Albums 进行实例化,并使用前面models层定义的 addAlbum() 方法在数据库中创建新记录。 $artist = $form->getValue('artist'); $title = $form->getValue('title'); $albums = new Application_Model_DbTable_Albums(); $albums->addAlbum($artist, $title); //保存了新的专辑行数据后,使用Redirector 这个action helper 返回到 index action页面,跳转到列表页。 $this->_helper->redirector('index'); } else { //如果表单数据不合法,表单会重新显示并填入用户输入的数据 $form->populate($formData); } } }
提交并处理数据。
然后我们要在 view 脚本 add.phtml中呈现表单:(模板,问题来了,如何定制提交表单样式?)