商城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指令遍歷數據

 

相關文章
相關標籤/搜索