一、数据库:

1.User: 用户表

  • name: varchar 用户名
  • sex: varchar 性别
  • phone: varchar 电话
  • openid: varchar 对应微信号

2.Goods: 商品表

  • name: varchar 名称
  • kind: varchar (popular, cloth, food) 种类
  • price: double 价格
  • originalprice: double 原价
  • description: varchar 描述

3.Cart: 购物车表

  • userid: int 用户id
  • goodsid: int 商品id
  • number: int 数量

4.Order: 订单表

  • kind: varchar (unpaid, paid, finished) 种类
  • userid: int 用户id
  • goodsid: int 商品id
  • number: int 数量

5.Image: 图片表

  • goodsid: int 商品id
  • url: varchar 图片地址
  • kind: varchar (show, descripe) 图片种类

二、cookie和Session

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

来源_知乎

Setting new cookie
=============================
<?php setcookie("name","value",time()+$int); /*name is your cookie's name value is cookie's value $int is time of cookie expires*/ ?>

Getting Cookie
=============================
<?php echo $_COOKIE["your cookie name"]; ?>

Updating Cookie
=============================
<?php setcookie("color","red"); echo $_COOKIE["color"]; /*color is red*/ /* your codes and functions*/ setcookie("color","blue"); echo $_COOKIE["color"]; /*new color is blue*/ ?>

Deleting Cookie
==============================
<?php unset($_COOKIE["yourcookie"]); /*Or*/ setcookie("yourcookie","yourvalue",time()-1); /*it expired so it's deleted*/ ?>

//来源:php手册中笔记

三、验证读取数据是否合法

  • 由Validate类定义。
  • 通过make()函数来建立判断规则,单条数据间规则以‘ | ’相隔。其中,confirm规则可以用来判断两条数据是否相等,确认字段名需为原数据名加上“_confirm”,且确认字段无需再添加判断规则,例:(原数据名:name,则确认字段名为:name_confirm,判断规则为:'name' => 'confirm',)。
  • 通过check()函数判断数据是否合法。
  • 通过getError()函数获取不合法信息。
    public function create(Request $request)
    {
        $data = $request->post();
        $validate = Validate::make([
            'name' => 'require|min:3|max:20',
            'sex' => 'require',
            'phone' => 'require',
            'openid' => 'request',
        ]);
        if ($validate->check($data))
        {
            $user = new UserModel($data);
            if ($user->allowField(true)->save())
                return $this->success('create successfully','/index/User');
            else
                return $this->error('create failed');
        }
        else
            return $this->error($validate->getError());
    }

 

bug:

  1. migrations文件不可使用double(改用float)、int(integer)、varchar(string)。
  2. 开启调试:config.php文件下'app_debug'变量设为true。
  3. 存储时读取不到数据库表中字段:添加allowField(true)->,估计是打开访问权限作用。
  4. 开发手册仅有各种构建的用法,没有构建作用,还是得去php手册找。
  5. 数据库设计时未考虑订单号功能。
  6. 数据库中提取出的数据均转换成string类型,对提取出的数据进行操作时报错(致命错误: Unsupported operand types);解决:非类型问题,而是将一个数组的值赋给了一个变量导致报错。
  7. html文件中资源文件的引用:默认路径以tp5接口的目录为根目录。

CSUer