私は解決できないZFで奇妙な動作をしています。私はlayout.phtmlとlogin.phtmlを持っています。だから、ユーザーがlayout.phtmlにログインしている場合は、login.phtmlを表示する必要があります。これもうまくいきますが、login.phtmlを表示する前にZFはlayout.phtmlを通過します。これはerror.logファイルのエラーのために確認できます。ZFの不思議なレイアウトの振る舞い
すべてのヘルプが理解されるであろうpublic function indexAction() {
$form = new BM_Form_Login();
$request = $this->getRequest();
if ($request->isPost()) {
if ($form->isValid($request->getPost())) {
if ($this->_process($form->getValues())) {
// We're authenticated! Redirect to the home page
//json validation on login page
$var = json_encode(array('valid' => true, 'redirect' => 'index'));
echo $var;
exit();
} else {
$var = json_encode(array('valid' => FALSE, 'error' => 'Authentication failed!', 'redirect' => 'auth'));
echo $var;
exit();
}
}
}// end if is POST
$this->_helper->layout()->setLayout('login'); // special login page
$this->view->form = $form;
}
... よろしく アンドレア
:私は認証コントローラを持っているものをここでpublic static function _initAcl()
{
$auth = Zend_Auth::getInstance();
$acl = new BM_Acl($auth);
$front = Zend_Controller_Front::getInstance();
$front->registerPlugin(
new BM_Controller_Plugin_Acl($auth, $acl)
);
}
:私はブートストラップを持っているものをここで
PSこれは、新しいブラウザウィンドウからアプリケーションを起動した場合にのみ発生します。ログインページを参照すると、レイアウトはもう呼び出されません。
私は、レイアウトを無効にし、ログインレイアウトのコンテンツをインデックスアクションテンプレートに入れることをお勧めします。 – designerrr
コードはOKですが、私は同じことを何度もやっています。他のレイアウトも処理されていることは間違いありませんか?あなたのレイアウトを混乱させる追加のロジックがありますか? – bububaba