商城3

用户角色分配

功能需求:在后台添加用户信息的时候,咱们须要为用户分配对应的角色信息php

  1. UserController.class.php控制器文件的add方法里面获取全部的角色信息

 

 

 

  1. add.html用户添加视图页面展现全部的角色信息

 

 

效果:html

 

 

用户列表

功能需求:在为用户分配对应的角色后,须要在用户的列表页展现用户的角色的名称信息,默认只能展现用户的role_id。因此咱们须要连表获取用户的角色名称信息。前端

 

 

原生SQL查询用户的角色信息:vue

 

 

 

  1. UserController.class.php控制器的lst方法里面进行连表操做获取用户的角色信息

 

 

 

  1. lst.html页面展现用户的角色信息

 

 

 

3. 效果git

 

 

 

4. 若是 表与表之间的关系(借助: MySQL workbench 软件是专门进行E-R模型绘制的)es6

 

 

 

完善登陆

功能需求:在用户成功登陆后,须要更新用户的登陆时间和IP地址github

 

  1. UserModel.class.phplogin方法里面调用一个_updateUserInfo方法更新用户的信息

 

 

 

  1. 定义一个_updateUserInfo方法更新用户的登陆信息

 

 

 

3. 效果ajax

 

 

 

权限验证

实现功能需求:后端

在后台的用户登陆以后,在用户访问某个操做以前,须要验证该用户是否存在对应的权限,若是存在,则能够进行访问显示,若是不存在权限,则调回回某个页面(后台首页)。浏览器

 

实现的思路:

  1. 在用户成功登陆后,须要根据用户的角色role_id去角色表里面查询角色对应的role_id_list(权限id字符串)
  2. 根据上一步查询出来的role_id_list咱们须要去权限表里面查询对应的权限信息(权限的名称、权限的控制器、权限的方法,查询出对应的权限信息后,须要保存到session(由于后面还要访问好多页面)
  3. 在访问某个操做(控制器下的方法)的时候须要将当前的控制器和方法去session里面进行对比,若是存在,则能够进行操做;可是须要注意如下几点:
    1. 用户是不是超级管理员(若是是超级管理员,则不受到权限的限制)
    2. 若是是后台的公共的方法(例如后台的首页,则默认全部的人均可以访问)

 

实操:

  1. UserModel.class.php模型的login方法里面在用户成功登陆后记录用户的权限信息

 

 

 

  1. 定义一个方法在用户成功登陆后,根据role_id查询数据role_id_list,而后获取用户的权限信息  [ ‘User/add’   ,  ’User/edt’ ]

 

 

 

 

  1. FatherController.class.php的构造方法里面进行验证

 

 

 

  1. 让须要作权限验证的控制器,继承FatherController控制器

 

 

 

权限菜单[重点]

功能需求:

在不一样的用户登陆后台后,在首页的左侧展现的菜单应该是不同的。这个时候咱们须要根据用户的角色信息,取出用户的权限菜单。

 

实操:

  1. UserModel.class.php模型文件的login方法里面获取用户的权限菜单信息

 

 

 

  1. _putAuthAndMenuToSessionByRoleId方法里面获取菜单信息

 

 

 

 

 

 

 

  1. left.html视图页面获取菜单信息

 

 

 

  1. 效果

 

 

上面已经完成一个rbac模块,接下来完成商品模块

 

商品类型模块

在以前的ecshop的使用过程当中,咱们知道一个商城里面是存在商品类型。到时候还要作商品类型下的属性;还要实现商品分类,最后一个商品的添加。

 

表设计

type_id 主键

type_name 商品类型名称

mark_up 商品类型的备注信息

 

 

 

商品类型添加

  1. 增长一个TypeController.class.php控制器文件,添加一个add方法

 

 

 

  1. 增长一个add.html视图页面

 

 

效果

 

 

 

  1. 增长一个TypeModel.class.php模型文件

 

 

 

 

 

商品类型展现

1.增长一个TypeController.class.php控制器文件,添加一个lst方法

 

 

 

2.增长一个lst.html视图页面

 

 

效果

 

 

 

商品属性

每一个商品类型下面是存在对应的商品的属性信息,而且属性是能够分类:惟一属性和单选属性。而且属性的属性值填写的时候也是能够进行不一样的操做:手工的填写和列表选择。

 

属性类型:惟一属性和单选属性

属性的录入方式:手工的填写和列表选择

 

表设计

attr_id 主键ID

attr_name 属性名称

type_id 所属的商品类型ID

attr_type 属性的类型:0表明是单选 1表明是惟一

attr_input_type 属性的录入方式:0表明是手工 1表明是列表选择

attr_values 属性的可选值,当属性的录入方式为列表选择的时候对应的可选值,到时候使用逗号进行分割

 

 

 

 

属性添加

1.增长一个AttributeController.class.php控制器文件,添加一个add方法

 

 

 

2.增长一个add.html视图页面

 

 

效果

 

 

3.增长一个AttributeModel.class.php模型文件

 

 

 

4.优化:为属性的可选值作一个禁用操做

 

 

 

 

 

属性展现

到时候属性的展现是在商品类型下的列表页进行展现(展现某个商品类型下的属性

 

  1. 在商品类型的lst.html展现页面增长一个属性列表

 

 

效果

 

 

 

  1. TypeController.class.php控制器文件增长一个getAttr方法,获取对于商品类型下的属性

 

 

 

  1. 增长一个getAttr.html视图文件,展现对应商品类型下的属性信息

 

 

效果

 

 


扩展

无刷新获取商品类型属性

  1. TypeController.class.php控制器文件的getAttr方法里面获取全部的商品类型

 

 

 

  1. getAttr.html视图页面展现商品类型

 

 

效果

 

 

  1. 在属性列表页为商品类型下拉框绑定change事件

 

 

注意:上面使用的 `` 反引号这种方式拼接字符串是es6提供的模板字符串语法。须要在高版本的浏览器才能够支持

http://es6.ruanyifeng.com/#docs/string#模板字符串

 

  1. TypeController.class.php控制器文件增长ajaxGetAttr方法

 

 

 

vuejs扩展

主要是教你们去快速的去学习一些新的东西。

 

简介

  1. 什么是vuejs

答: vuejs 是由国内的一个大牛(尤大大、尤雨溪),以前是在google lab实验室进行开发的。如今vuejs产品已经正式走入国际市场。(国外的市场很大)国内大力推广(angularJs 兼容很差),而且该产品是一个MVVM的产品

 

 

  1. 什么是MVVM

答:在咱们的后端里面,有MVC的这种开发思想,可是因为如今前端技术很是的火热,也催生出来了一些列的前端框架,前端里面的对传统的MVC进行单独的进行解读,出现一些列的变种叫法:MVVM  MVP  MVX  MV* 都是MVC的思想。

分析:MVVM == MVC

思考: C起的做用? 协调做用,是否实例化模型,是否载入视图

 

下面的这个图,是官方给的一个MVVM的概图:

 

 

 

 

使用

  1. 下载vue.js代码(注意: 如今目前vuejs分为两个大版本 1.x系列  2.x系列)

 

 

https://github.com/vuejs/vue/releases

 

 

 

  1. 页面上引入便可,而后使用vuejs语法进行数据的渲染

 

 

 

vuejs无刷新渲染商品类型属性

  1. 页面上引入vue.js

 

 

 

  1. 在页面上定义一个区域,交给vuejs进行管理

 

 

 

3. getAttr.html视图页面为下拉框定义事件

 

 

 

4. 实例化vue.js, 发送ajax获取数据

 

 

 

  1. TypeController.class.php控制器文件增长ajaxGetAttr方法

 

 

 

 

6. 在页面上使用v-for指令遍历数据

 

相关文章
相关标签/搜索