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框架中实现它。感谢
答案 0 :(得分:2)
你可以用Zend_Auth等多种方式执行此操作,但$ _SESSION方法的关闭是使用Zend_Session。
首先,您需要在任何输出发送到浏览器之前启动Zend_Session ,就像普通的php会话一样。我在设置所有路径和自动加载器后立即在index.php中执行此操作。
Zend_Session::start();
下一步是为用户信息创建命名空间并向其添加相关信息,最好在您对用户进行身份验证时。
$userInfo = new Zend_Session_Namespace('userInfo');
$userInfo->userType = 'admin';
这相当于设置$ _SESSION [&#39; userInfo&#39;] [&#39; userType&#39;] =&#39; admin&#39;;
最后,获取布局中的信息:
<?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
答案 1 :(得分: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>';
}