1

布局.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 框架中实现它。谢谢

4

2 回答 2

2

您可以通过多种方式执行此操作,例如 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

于 2012-07-11T11:48:19.897 回答
1

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

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

$identity = Zend_Auth::getInstance()->getIdentity();
if (strcmp($identity->role, "admin") == 0) {
    echo '<li><a href="addbook.phtml">adddbook</a> </li>';
}
于 2012-07-11T07:27:18.827 回答