目录
一、模型管理
1、模型列表
(1)在模型的控制器里面添加一个lst方法,用于模型数据的显示,并拷贝对应的静态页面
2、字段管理:
(1)建立一张字段模型表
#该表用于存储模型字段的信息。
create table it_modelfield(
id smallint primary key auto_increment,
model_id tinyint not null comment '模型 的id',
field_ename varchar(32) not null comment '字段的英文名称',
field_cname varchar(32) not null comment '字段的中文名称',
field_type varchar(32) not null comment '字段的类型',
field_value varchar(32) not null comment '字段的默认值'
)engine myisam charset utf8;
(2)新建一个modelfield的控制器,并添加一个lst的方法,并拷贝对应的静态页面。
在modelfield控制器里面的lst方法对应的静态页面中添加一个添加字段的链接。
(3)在modelfield控制器里面添加一个add方法,用于添加该模型的字段信息。
拷贝对应的静态页面,并添加字段信息的表单。
不要忘了添加模型的隐藏域,表示添加的字段信息是哪个模型的。
(4)新建一个modelfield的模型,并完成数据验证
(5)开始添加字段信息入库
(6)使用钩子函数完成字段信息添加到附加表里面完成创建
2、模型 的修改
如果模型对应的附加表名修改了,则也要修改表名
3、模型的删除
如果要模型删除,要删除对应的附加表
4、字段管理(修改)
在字段修改时,要完成it_modelfield表里面信息的修改,还要完成附加表里面字段的修改。
二、栏目管理
和添加权限是一样的。使用无限极分类,在添加栏目的时候要指定当前栏目属于哪个模型。
完成栏目表
create table it_category(
id smallint primary key auto_increment,
cat_name varchar(32) not null comment '栏目的名称',
parent_id smallint not null default 0 comment ' 父级栏目的id',
model_id tinyint not null comment '模型 的id'
)engine myisam charset utf8;
1、添加栏目
(1)新建一个栏目的控制器并添加add方法,并拷贝对应的静态页面。
取出栏目数据和模型数据,
在栏目的模型里面定义了getTree方法用于无限极取出数据
遍历栏目数据
遍历模型数据
(2)在模型里面添加数据验证,并完成栏目的添加
2、栏目的列表
3、栏目删除
在栏目删除的时候,要判断有没有子栏目,如果有则不能删除,或和子栏目一块删除
3、栏目的修改
在栏目修改时,不能把自己的子孙栏目 当成父级栏目。
三、内容管理
根据模型附加表里面的字段生成表单, 添加具体的内容,
思路:根据model_id从it_modelfield表里面取出具体的内容,
字段的中文名称,根据类型生成具体的表单,根据默认值,具体生成单选按钮和复选框和下拉框。
1、新建一个content的控制器,并添加add方法,并拷贝对应的静态页面。
2、在静态页面中把取出的数据给遍历并生成对应的表单
四、RBAC的普通管理员登陆,。
1、根据管理员的权限生成左侧的权限按钮
(1)在管理员的模型中定义一个函数,getMenus根据管理员的权限获取按钮
在index控制器里面left函数中,取出权限按钮,并遍历到静态页面。
2、在管理员登录后,如果要某个操作,则要验证当前登录的管理员是否有权限。
//验证的思路:在执行某个操作时,取出操作的所在控制器的名称,和操作的方法名称。
根据登录的admin_id从it_privilege表里面取出controllername actionname两个字段进行匹配
外连和内连的区别.
class
id class_name
1 a
2 b
3 c
student
id stu_name class_id
1 s1 1
2 s2 2
3 s3 3
4 s4 4
5 s5 1
a.class_id=b.id
列出所有的学生以及学生所在的班级的名称。
SELECT a.*,b.class_name FROM student a LEFT JOIN class b ON a.class_id=b.id(外连)
id stu_name class_id class
1 s1 1 a
2 s2 2 b
3 s3 3 c
4 s4 4 null
5 s5 1 a
SELECT a.*,b.class_name FROM student a,class b WHERE a.class_id=b.id(内连)
id stu_name class_id class
1 s1 1 a
2 s2 2 b
3 s3 3 c
5 s5 1 a