小白全栈日记:小程序前端+Thinkphp6后端开发全记录1

时间:2024-04-10 11:27:51

小白全栈日记:小程序前端+Thinkphp6后端开发全记录1


本文目标:

1.生成小程序项目骨架
2.搭建后端项目骨架
3.进行前后端通信测试

清晰的目录结构对业务逻辑的开发很有帮助,这一步虽然简单,但也需要认真对待

一、小程序骨架

这是小程序生成的默认项目结构
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1
在保留原有结构的基础上,在根目录新建一个static文件夹,与pages和utils两个文件夹平级,在static文件夹下新建一个image文件夹,用于存放一些小程序需要用到的静态资源,就本项目而言,就是一些图片,比如tabBar需要用到的图标等。

接下来删除一些默认代码:

  1. 删除app.wxss中的所有代码
  2. 先删除app.json中"pages/logs/logs"这句以及上一句的逗号,然后删除pages文件夹下的logs文件夹。(index文件夹先留着,用于做一些小测试)
  3. 删除app.js中onLaunch函数

修改完成后的项目结构:
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1

至此小程序项目骨架整理完毕,下面进行后端项目骨架的开发

二、后端项目骨架–ThinkPHP6.0

  • 安装ThinkPHP6
    小白全栈日记:小程序前端+Thinkphp6后端开发全记录1如图所示,thinkphp从6.0开始无法从官网直接下载也不支持git,只能用composer安装,
    但是使用composer时有的小伙伴会出现这样或那样的问题。
    所以我保存着一整套thinkPHP6的文件,需要开发一个新项目时,直接复制一份,粘贴到项目根目录即可。

  • 目录结构
    用VScode打开项目后,结构如下:
    小白全栈日记:小程序前端+Thinkphp6后端开发全记录1
    没啥需要修改的,先这么用着

  • 测试thinkPHP是否安装成功
    在浏览器中输入http://127.0.0.1/zhiyi/api/public/index.php/index/index,如下图
    小白全栈日记:小程序前端+Thinkphp6后端开发全记录1
    !!注意!!
    我的Apache服务器的网站根目录是一个叫APP的文件夹,后端项目位于APP/zhiyi/api下,所以我写请求地址时是写127.0.0.1/zhiyi/api你不能这么输入,需要改成自己的项目路径
    格式就是http:127.0.0.1/你的项目路径/public/index.php/index/index
    还有:public/后面是可以省略的

三、前后端通信测试

在小程序的index页新建一个button标签,在按钮上定义一个方法,用来向后端发送一次网络请求

现在app.js中定义baseUrl:
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1
然后在index页引入app,拼接成完整的网络请求地址
app.globalData.baseUrl + 'index/test’指向的是后端index控制器下的test方法
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1在后端的controller文件夹下的Index.php中定义一个方法test(),用于响应小程序传过来的请求,并返回一句json格式的话“我是后端数据”
如果小程序能收到数据并打印到控制台,说明通信成功
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1小白全栈日记:小程序前端+Thinkphp6后端开发全记录1通信成功


关于thinkphp的调试模式
现在我把小程序的网络请求路径从index/text改成index/test1,由于我并没有定义test1方法,所以此次请求肯定会报错,打开小程序的控制台,在Network中可看到报错信息如下:‘页面错误!请稍后再试~’。
这个报错信息对于开发者而言是很不友好的,看上去不详细,不知道具体错在哪。
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1解决这个问题很简单,打开后端项目中的config文件夹下的app.php,把最下面一行的’show_error_msg’ => false,改成true就行了
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1这样,thinkPHP的调试模式就打开了,再遇到报错,会显示详细的错误信息,方便我们定位差错。
修改后,再次发送请求,报错信息如下:
小白全栈日记:小程序前端+Thinkphp6后端开发全记录1这次的错误提示就很清晰了。


小程序的网络请求不涉及跨域,是比较简单的。当然,跨域问题也很好解决,以后碰到了再说。

我默认大家会小程序和thinkPHP的基本使用,所以我不会讲button标签怎么用或者如何在class类中定义方法,这些太基础了

明天是数据库搭建、小程序用户登录和图片上传

想要thinkPHP6.0文件的,可以直接私信我