我有一个数据库驱动的导航,主要由两个表组成:menus
和一个menu_items
,这对于纯“静态”链接很有效,但现在我需要一个动态链接(登录/注销)。
我的menu_items
表格只是由管理员手动添加的页面链接组成。所以现在我需要调整表格和模型,以便它可以处理“动态”链接。
这是 menu_items 表的架构:
CREATE TABLE `menu_items` (
`id` int(11) NOT NULL auto_increment,
`menu_id` int(11) default NULL,
`label` varchar(250) default NULL,
`page_id` int(11) default NULL,
`link` varchar(250) default NULL,
`position` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8
菜单 id 对应另一个表,例如 1 是主导航,2 可以是实用导航。位置是指相对于显示菜单项的每个菜单的顺序。链接只是一个字段,例如'/user/login'。
我正在遍历我的每个菜单并创建导航容器并为此使用 Zend Navigation。
这是我用于登录区域的逻辑,我需要将其移至动态导航中:
<?php if($this->identity == null) { ?>
<p><a href='/user/login'>Login</a></p>
<?php }else{ ?>
<p>Welcome back <?php echo $this->identity->first_name;?></p>
<p>To log out <a href='/user/logout'>click here</a></p>
<?php } ?>
看起来我需要为每个菜单项的访问级别添加一个新列,然后更新我的菜单模型以说明用户是否登录并查询菜单项的新访问列值,或者类似的东西线。有人有什么建议吗?