Я пытаюсь создать форму для входа в систему с помощью Zend_Form, я хочу, чтобы она отображалась по адресу www.site.com/login или www.site.com/account/login, но после того, как я выполнил все шаги ниже и я пытаюсь позвонить / войти или / account / login из моего браузера, я получаю HTTP 500 (Внутренняя ошибка сервера) .. даже если остальная часть сайта работает отлично. Пожалуйста, помогите мне понять, где я не прав ..
(обратите внимание, что я использую Zend Framework 1.11)
(1) Создать модель с помощью ZF
zf создать модель FormLogin
(2) Отредактируйте новую созданную модель в приложении / models / FormLogin.php
class Application_Model_FormLogin extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('login');
$this->setMethod('post'); // GET O POST
$this->setAction('/account/login'); // form action=[..]
$email = new Zend_Form_Element_Text('email');
$email->setAttrib('size', 35);
$pswd = new Zend_Form_Element_Password('pswd');
$pswd->setAttrib('size', 35);
$submit = new Zend_Form_Element_Submit('submit'); // submit button
$this->setDecorators( array( array('ViewScript', array('viewScript' => '_form_login.phtml'))));
$this->addElements(array($email, $pswd, $submit));
}
}
(3) Добавить loginAction к контроллеру аккаунта
class AccountController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
}
public function loginAction()
{
$form = new Application_Model_FormLogin();
$this->view->form = $form;
}
}
(4) Создать представление в приложении / views / scripts / account / login.phtml
<?php echo $this->form; ?>
(5) Создайте страницу application / views / scripts / _form_login.phtml, вызываемую setDecorators () в точке (2)
<form id="login" action="<?php echo $this->element->getAction(); ?>"
method="<?php echo $this->element->getMethod(); ?>">
<p>
E-mail Address<br />
<?php echo $this->element->email; ?>
</p>
<p>
Password<br />
<?php echo $this->element->pswd; ?>
</p>
<p>
<?php echo $this->element->submit; ?>
</p>
</form>
(6) А это мой Bootstrap.php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
public function _initRoutes()
{
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route_Static (
'login',
array('controller' => 'Account', 'action' => 'login')
);
$router->addRoute('login', $route);
$route = new Zend_Controller_Router_Route (
'games/asin/:asin/',
array('controller' => 'Games',
'action' => 'view',
'asin' => 'B000TG530M' // default value
)
);
$router->addRoute('game-asin-view', $route);
}
}