ZEND_Auth,停用导航区域

时间:2015-05-20 11:11:09

标签: zend-framework2 zend-form zend-layout

我使用Zend_Auth构建了一个登录页面。现在我的问题是如何停用加载了layout.phtml的区域?

这是我的layout.phtml代码中我不希望在登录和注销表单中看到的部分:

<div id="navigation">
    <ul>
            <li><a href="<?php echo $this->url(array('controller'=>'arbeitskalender', 'action'=>'index'), null, false);?>">Arbeitskalender</a></li>
            <li><a href="<?php echo $this->url(array('controller'=>'pdf', 'action'=>'index'));?>">Arbeitskalender download</a></li>
            <!--<li><a href="<?php echo $this->url(array('controller'=>'bibliothek', 'action'=>'index'));?>">Bibliothek</a></li> -->
            <!-- <li><a href="<?php echo $this->url(array('controller'=>'schwestern', 'action'=>'index'));?>">Schwestern</a></li> -->
    </ul>
</div>

如何使用不同的布局?在哪个地方以及如何加载它们?

1 个答案:

答案 0 :(得分:1)

您可以在应用程序中拥有多个布局。如果您在没有导航HTML的情况下创建另一个并在module.config.php中进行配置,则可以在控制器中选择要使用的布局。

'template_map' => array(
    'layout/layout'       => __DIR__ . '/../view/layout/layout.phtml',
    'layout/layout_login' => __DIR__ . '/../view/layout/layout_login.phtml'
)

然后在你的控制器中:

$this->layout('layout/layout_login');

编辑:

或者,如果您想动态更改布局,可以使用Identity View Helper检查用户是否已登录。 e.g。

<!-- if logged in, show logout link -->
<?php if (null !== $this->identity()) : ?>
    <a href="/logout">Logout</a>
<?php endif; ?>