fastadmin-微信小程序实战课程:todolist项目文档(课件)整理汇总

网址整理

视频教程地址:

https://www.ixigua.com/7017702820048536071

后端接口仓库地址:

https://gitee.com/maoshushare/fast-todolist

第一节 项目计划和准备工作

项目简介

本项目是一个fastadmin+微信小程序的实战案例,一个简单的todolist任务管理功能,包括后台数据增删改查、数据统计、api接口开发(小程序对接登录、小程序端管理数据)等。

功能比较简单,覆盖到的知识点不会太多,适合初学者,尤其适合没有做过小程序和fa结合使用的同学。

为便于大家利用碎片时间学习,每节课的时间会尽量控制在10分钟左右。

效果截图

本项目是模仿滴答清单的部分功能,大概界面是这样:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vrVqSwq-1641880230864)(https://cdn.jsdelivr.net/gh/978165754/picgo@master/blog/20211011104255.png)]

项目计划

本项目制作思路:

  • 1.先制作基础的后端api部分。
  • 2.再制作小程序界面。
  • 3.小程序对接api,打通基本功能。
  • 4.缺少的api一边补充一边对接。

准备工作

  • 1.准备工具:VsCode(或phpStorm)、phpStudy、chrome浏览器(或Edge)、微信小程序开发工具、apipost
  • 2.下载fastadmin框架代码(https://gitee.com/maoshushare/fastmodel)
  • 3.导入mysql数据库,配置环境,启动项目

第二节 登录和自动注册api

验证字段必填

先引入Validate,use think\Validate;

$rule = [
    'openid'  => 'require|length:10,30'
];

$msg = [
    'openid.require' => '缺少openid',
    'openid.length' => 'openid长度不符合',
];

$v = new Validate($rule,$msg);


登录和注册

如果已经存在,则登录,不存在则先注册,然后再自动登录

api相关的拓展教程:https://www.bilibili.com/video/BV1Ji4y1V7ZV?p=11

$post=$this->request->param();
if (!$v->check($post)) {
   
    $this->error('登录失败:' . $v->getError());
}
$u = model('admin/User')->where('openid',$post["openid"])->find();
if($u){
   
    Token::clear($u["id"]);
    $this->auth->direct($u["id"]);
    $this->success('登录成功', $this->auth->getUserinfo());
}
else{
   
    $username = $post["openid"];
    // 初始密码给一个随机数
    $password = Random::alnum(15);
    $this->auth->register($username,$password,'','',[
        "openid"=>$post["openid"]
    ]);
    $this->success('注册成功', $this->auth->getUserinfo());
}

第三节 创建数据表 生成crud

创建数据表:todo

字段:
userid task status tags prio desc
todotime
donetime
giveuptime
createtime updatetime deletetime

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNJbJLnN-1641880230868)(https://cdn.jsdelivr.net/gh/978165754/picgo@master/blog/20211012141903.png)]

一键生成CRUD

20211012141807

第四节 编写增删改查api

新建一个控制器Xcxtodo,专门写关于任务控制的api

增加 和 修改

增加和修改写在一起,方便维护

增加

$this->model
->allowField(true)
->save([
    "userid"=>$this->uid,
    "tags"=>"测试",
    "task"=>"测试3331232233",
]);

修改

$this->model
->allowField([
  "task"
])
->save([
    "task"=>"89898",
],["id"=>20]);

删除

根据任务id删除(软删除)

关于软删除的文档说明:https://www.kancloud.cn/manual/thinkphp5/189658

$this->model->get($id)->delete();

$this->model->destroy($id);

查询

  • 根据关键词查询任务内容(模糊查询)

    $task = input("task");
    $where=[
        "userid"=>$this->uid,
    ];
    if($task){
         
        $where["task"]=["like","%$task%"];
    }
    $list = $this->model->where($where)->select();
    

    处理标签id为标签文字

    $tags = model('admin/Todotags')->where([
          "userid"=>$this->uid,
        ])->column('tags','id');
    
    foreach ($list as $key => &$value) {
         
      $tagsArr = explode(',',$value["tags"]);
    
      $tagsNameArr = [];
      foreach ($tagsArr as $id) {
         
        $tagsNameArr[] = $tags[$id] ?? $id;
      }
    
      $value["tagsName"] = implode(',',$tagsNameArr);
    }
    
  • 根据关键词查询标签

    $tags = input("tags");
    $where=[
        "userid"=>$this->uid,
    ];
    if($tags){
         
        $where["tags"]=["like","%$tags%"];
    }
    $list = $this->model->where($where)->group("tags")->column("tags");
    

    改为专表之后:

    $tags = input("tags");
    $where=[
        "userid"=>$this->uid,
    ];
    if($tags){
         
        $where["tags"]=["like","%$tags%"];
    }
    $list = model('admin/Todotags')->where($where)->select();
    
  • 根据标签查询任务

    $tags = input("tags");
    $where=[
        "userid"=>$this->uid,
    ];
    if($tags){
         
        $where["tags"]=$tags;
    }
    $list = $this->model->where($where)->select();
    

    改为专表之后:
    注意exp的写法(https://www.kancloud.cn/manual/thinkphp5/135182)

      $tags = input("tags");
      $where=[
          "userid"=>$this->uid,
      ];
      
      $list = $this->model
      ->where($where);
      if($tags)
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写代码的猫叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值