私はZend_Formを使用してログインフォームをレンダリングしようとしていますが、www.site.com/loginまたはwww.site.com/account/loginを呼び出してレンダリングしたいのですが、いったん完了したら下のすべての手順と私は私のブラウザから/ loginまたは/ account/loginを呼び出そうとしています。私はHTTP 500(内部サーバーエラー)を取得しています。 (1)ZFレンダリングできませんZend_Form
zf create model FormLogin
(2)の編集を通じてモデルを作成します
(私はZend Frameworkの1.11を使っていることに注意してください)私が間違っているところ私は..
を見つけ出す助けてくださいアプリケーション/モデル/ 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)(5)setDecorators(によって呼び出されたページのアプリケーション/ビュー/スクリプト/ _form_login.phtmlを作成
<?php echo $this->form; ?>
アプリケーション/ビュー/スクリプト/アカウント/ login.phtmlでビューを作成します)ポイント(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);
}
}
私はあなたがデフォルトモジュールの 'controller/action'のためのルートを定義する必要はないと思います。 – NAVEED
私のルートを削除しても動作しません – evil0
エラーとして「内部サーバーエラー」と表示されますが、コードに問題はありません。 – Liyali