Мне нужен простой способ отображения этой формы. Причина, по которой я делаю это таким образом, заключается в том, чтобы увидеть, как вещи могут передаваться с одного контроллера на другой контроллер, и отобразить эти вещи. Я учусь Zend прямо сейчас, но это было довольно сложно. Это материал из учебника Zend. Я хочу, чтобы IndexController перенаправил на Гостевую книгу и Гостевую книгу, чтобы создать форму и перейти к представлению.
Это моя структура папок
test
-Form
Guestbook.php
-Model
-controllers
GuestbookController.php
IndexController.php
-externals
-Settings
-views
-scripts
-guestbook
script.tpl
sign.tpl
-index
index.tpl
Bootstrap.php
Guestbook.php
<?php
class Test_Form_Guestbook extends Zend_Form{
public function init(){
$this->setMethod('post');
$this->addElement('text','email',array(
'label' => 'Your Email address: ',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array('EmailAddress',)
));
$this->addElement('text','comment',array(
'label' => 'Leave a Comment: ',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array('validator' => 'StringLength', 'options' => array(0, 20))
)
));
$this->addElement('hash','csrf',array('ignore'=>true,));
}
}
?>
sign.tpl
<?php
$this->form->setAction($this->url());
echo $this->form;
?>
IndexController.php
class Test_IndexController extends Core_Controller_Action_Standard
{
public function indexAction()
{
$this->_helper->redirector('sign', 'guestbook');
}
}
GuestbookController.php
class Test_GuestbookController extends Zend_Controller_Action{
public function signAction(){
$request = $this->getRequest();
$form = new Test_Form_Guestbook();
if($this->getRequest()->isPost()){
if($form->isValid($request->getPost())){
return $this->_helper->redirector('index');
}
}
$this->view->form = $form;
}
}
StackTrace
exception 'Zend_View_Exception' with message 'script '.tpl' not found in path (C:\xampp\htdocs\application\modules\Core\layouts\scripts\;C:\xampp\htdocs\application\modules\Test\views\scripts\;C:\xampp\htdocs\)' in C:\xampp\htdocs\application\libraries\Zend\View\Abstract.php:928
Stack trace:
0 C:\xampp\htdocs\application\libraries\Zend\View\Abstract.php(831): Zend_View_Abstract->_script('.tpl')
1 C:\xampp\htdocs\application\libraries\Zend\Layout.php(793): Zend_View_Abstract->render('.tpl')
2 C:\xampp\htdocs\application\libraries\Zend\Layout\Controller\Plugin\Layout.php(142): Zend_Layout->render()
3 C:\xampp\htdocs\application\libraries\Zend\Controller\Plugin\Broker.php(331): Zend_Layout_Controller_Plugin_Layout->postDispatch(Object(Zend_Controller_Request_Http))
4 C:\xampp\htdocs\application\libraries\Zend\Controller\Front.php(957): Zend_Controller_Plugin_Broker->postDispatch(Object(Zend_Controller_Request_Http))
5 C:\xampp\htdocs\application\modules\Core\Bootstrap.php(75): Zend_Controller_Front->dispatch()
6 C:\xampp\htdocs\application\libraries\Engine\Application.php(99): Core_Bootstrap->run()
7 C:\xampp\htdocs\application\index.php(177): Engine_Application->run()
8 C:\xampp\htdocs\index.php(24): include('C:\xampp\htdocs...')
9 {main}