我是 codeigniter 的新手,目前几乎所有内容,但我在 php、mysql、ci 和 web 应用程序开发方面取得了一些成功。不过,我现在有点卡住了。所以,我想把它扔出去,以征求你对我正在尝试做的事情的看法,希望 - 你可以有耐心去理解我的问题并找到解决方案,因为我会尽力给你所有的细节。
首先,我正在开发一个 Web 应用程序,以帮助简化某个组织的出勤记录。我创建了一个成员表来保存组织的所有成员,一个登录表来保存在组织中担任角色的成员的用户名和密码,一个角色表来包含在组织中担任的角色,最后是一个 member_role表来说明在组织中可能具有多个角色的任何成员。(当然还有一张考勤表,外键是会员,但这不在我目前的问题范围内)。
MySQL 代码只包括相关的表:memeber、login、role 和 member_role。
<!-- language: lang-mysql -->
CREATE TABLE `member` (
`id` int(10) NOT NULL auto_increment,
`fname` varchar(32) NOT NULL,
`lname` varchar(32) NOT NULL,
...
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `login` (
`memberid` int(10) NOT NULL,
`username` varchar(32) NOT NULL,
`password` varchar(32) NOT NULL,
FOREIGN KEY (`memberid`) REFERENCES member(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `role` (
`id` integer(10) NOT NULL auto_increment,
`role` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `member_role` (
`memberid` integer(10),
`roleid` integer(10),
`active` char(1) NOT NULL,
FOREIGN KEY (`memberid`) REFERENCES member(`id`),
FOREIGN KEY (`roleid`) REFERENCES role(`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
到目前为止,我认为我在为此目的定义数据库方面做得很好。你在这里的意见会很好,因为我是新手,我只知道新手会知道什么。
这是我目前遇到的真正问题。我创建了一个具有 2 个角色的用户。我让它正确地存储到一个会话中,一个特定成员角色的数组。会话数组返回,roleid 1 和 roleid 3。
假设我为每个角色分配了某些按钮或功能。对于memeberid = 1,我已分配给他roleid = 1 和roleid = 3,因此我只想构建一个页面,其中仅包含roleid = 1 和roleid = 3 可用的功能。有意义吗?
这就是我卡住的地方,我有数组,但不确定如何为用户构建页面。我应该将代码放入控制器还是视图中?无论哪种方式,我都不确定如何填充仅包含关于 roleid = 1 和 roleid = 3 的按钮页面。嗯,我希望你能理解,因为这是我认为我能说清楚的最好的。
如果您确实理解,请举例说明我可以实现什么/如何实现这一目标。
谢谢你的时间。