zend Farmework에서 FORM 양식을 만드는 방법 이해

4668 단어
1. 먼저 Zend가 자동으로 불러올 수 있도록 프로그램을 설정합니다. 수동으로 불러올 필요가 없습니다.
 
  
require_once 'Zend/Loader/Autoloader.php'    //
$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 ,

2. 다음 form의 디렉터리가 응용 프로그램/forms/아래에 Guestbook을 만드는지 확인합니다.phps
다음과 같이 form의 클래스 파일로 사용됩니다.
 
  
 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(0, 20))
                )
        ));

        // Add a captcha
        $this->addElement('captcha', 'captcha', array(
            'label'      => 'Please enter the 5 letters displayed below:',
            'required'   => true,
            'captcha'    => array(
                'captcha' => 'Figlet',
                'wordLen' => 5,
                'timeout' => 300
            )
        ));

        // 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/GuestbookController.php
 
  
class GuestbookController extends Zend_Controller_Action
{
    // snipping indexAction()...
    public function signAction()
    {
        $request = $this->getRequest();//
       // include_once("../application/forms/Guestbook.php");  , ,
        $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 보기 파일을 추가하면 됩니다: 주소: 응용 프로그램/views/scripts/guestbook/sgin.php
 
  
Please use the form below to sign our guestbook!
$this->form->setAction($this->url());
echo $this->form;

좋은 웹페이지 즐겨찾기