如何在zend布局中检查会话



layout.phtml:

<?php echo $this->doctype() ?>
<html>
<head>
    <?php echo $this->headTitle()."n"; ?>
    <?php echo $this->headLink() ."n"; ?>    
    <?php echo $this->headScript(); ?>
</head>
<body>
<div id="wrap">
       <div class="header">
            <div class="logo"><a href="index.html"><img src="../../images/logo.gif" alt="" title="" border="0" /></a></div>            
        <div id="menu">
            <ul>                                                                       
            <li class="selected"><a href="index.html">home</a></li>
            <li><a href="about.phtml">about us</a></li>
            <li><a href="category.phtml">books</a></li>
            <li><a href="specials.phtml">specials books</a></li>
            <li><a href="myaccount.phtml">my accout</a></li>
            <li><a href="register.phtml">register</a></li>
            <li><a href="details.phtml">prices</a></li>
            <li><a href="contact.phtml">contact</a></li>
            <li><a href="addbook.phtml">adddbook</a> </li>
            </ul>
        </div>     

       </div> 

       <div class="center_content">
        <div class="left_content">
       <?php echo $this->layout()->content ?>

我是zend框架的新手,在这里我面临着显示导航的问题。在纯php中,我可以通过检查会话来提供导航。像这样:

<?php 
if($_SESSION['usertype']=='admin')
{
echo "<li><a href="addbook.phtml">adddbook</a> </li>";
}
?>

我的问题是如何在zend框架中实现这一点。感谢

您可以通过多种方式实现这一点,如Zend_Auth,但接近$_SESSION方法的方法是使用Zend_SESSION。

首先,在将任何输出发送到浏览器之前,您需要启动Zend_Session,就像正常的php会话一样。我在设置了所有的路径和自动加载器之后,就在我的index.php中完成了这项工作。

Zend_Session::start();

下一步是为用户信息创建一个名称空间,并将相关信息添加到其中,最好是在对用户进行身份验证时。

$userInfo = new Zend_Session_Namespace('userInfo');
$userInfo->userType = 'admin';

这相当于设置$_SESSION['userInfo']['userType']='admin';

最后,获取布局中的信息:

<?php 
$userInfo = new Zend_Session_Namespace('userInfo');
if($userInfo->userType=='admin')
{
    echo "<li><a href="addbook.phtml">addbook</a> </li>";
}
?>

阅读此链接了解更多信息http://framework.zend.com/manual/en/zend.session.html

如果要检查用户角色,可以使用框架提供的类Zend_Auth。您可以检查用户的凭据,然后影响其角色。

要检索此角色,您可以使用Zend_Auth实例检查用户的身份:

$identity = Zend_Auth::getInstance()->getIdentity();
if (strcmp($identity->role, "admin") == 0) {
    echo '<li><a href="addbook.phtml">adddbook</a> </li>';
}

最新更新