山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

目录

一、模型管理 1

二、栏目管理 5

三、内容管理 7

四、RBAC的普通管理员登陆,。 8

一、模型管理

1、模型列表

(1)在模型的控制器里面添加一个lst方法,用于模型数据的显示,并拷贝对应的静态页面

wps325E.tmp

wps32DC.tmp

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的方法,并拷贝对应的静态页面。

wps330C.tmp

在modelfield控制器里面的lst方法对应的静态页面中添加一个添加字段的链接。

wps331C.tmp

(3)在modelfield控制器里面添加一个add方法,用于添加该模型的字段信息。

拷贝对应的静态页面,并添加字段信息的表单。

wps337B.tmp

不要忘了添加模型的隐藏域,表示添加的字段信息是哪个模型的。

wps338C.tmp

wps339C.tmp

(4)新建一个modelfield的模型,并完成数据验证

wps33FB.tmp

(5)开始添加字段信息入库

wps3479.tmp

(6)使用钩子函数完成字段信息添加到附加表里面完成创建

wps34D8.tmp

wps34E8.tmp

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方法用于无限极取出数据

wps34F9.tmp

wps36BF.tmp

遍历栏目数据

wps36D0.tmp

遍历模型数据

wps372E.tmp

(2)在模型里面添加数据验证,并完成栏目的添加

wps374F.tmp

2、栏目的列表

3、栏目删除

在栏目删除的时候,要判断有没有子栏目,如果有则不能删除,或和子栏目一块删除

3、栏目的修改

在栏目修改时,不能把自己的子孙栏目 当成父级栏目。

三、内容管理

根据模型附加表里面的字段生成表单, 添加具体的内容,

思路:根据model_id从it_modelfield表里面取出具体的内容,

字段的中文名称,根据类型生成具体的表单,根据默认值,具体生成单选按钮和复选框和下拉框。

1、新建一个content的控制器,并添加add方法,并拷贝对应的静态页面。

wps377F.tmp

2、在静态页面中把取出的数据给遍历并生成对应的表单

wps3A5E.tmp

wps3AAD.tmp

四、RBAC的普通管理员登陆,。

1、根据管理员的权限生成左侧的权限按钮

(1)在管理员的模型中定义一个函数,getMenus根据管理员的权限获取按钮

wps3B5A.tmp

wps3BA9.tmp

wps3C47.tmp

wps3CD4.tmp

在index控制器里面left函数中,取出权限按钮,并遍历到静态页面。

wps3E7B.tmp

wps3E9B.tmp

2、在管理员登录后,如果要某个操作,则要验证当前登录的管理员是否有权限。

//验证的思路:在执行某个操作时,取出操作的所在控制器的名称,和操作的方法名称。

根据登录的admin_id从it_privilege表里面取出controllername   actionname两个字段进行匹配

wps410D.tmp

wps41D9.tmp

外连和内连的区别.

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

image

posted on 2016-05-08 22:21  山山未迟  阅读(172)  评论(0编辑  收藏  举报