ThinkPHP6.0.2开发环境的一个BUG


最近在用新版本开发一套小程序的api,发现一个恶心的地方,要知道程序在开发的时候都是需要调试处理的,tp6是通过.env环境变量文件来开启调试模式的,官方给的文件说明是这样的

可以在应用的根目录下定义一个特殊的.env环境变量文件,用于在开发过程中模拟环境变量配置(该文件建议在服务器部署的时候忽略),.env文件中的配置参数定义格式采用ini方式,例如:

<code>APP_DEBUG =  true
APP_TRACE = true
/<code>

默认安装后的根目录有一个.example.env环境变量示例文件,你可以直接改成.env文件后进行修改。

我在开发时候开始没有使用官方给出的命令行工具,直接使用的lnmp生产环境来做开发,先上一张出现问题的图片


ThinkPHP6.0.2开发环境的一个BUG

提示拒绝访问,我们看图片中的红框,链接的数据库名称是test,这好奇怪,找了半天不知道原因在哪里,刚开始我以为环境问题,更换了多个环境问题依然存在,我开始怀疑是不是程序损坏了,我有composer一份程序来做测试,终于发现问题所在。

当我开启调试模式,把.example.env文件改成.env的时候,正常在控制器中连接数据库是没有问题的Db::name('user')->select(),是可以获取到数据的并且不会报错。

进一步使用,我采用模型的方式获取数据,创建model文件夹,以及对应模型,程序就开始报错了,直接读取.env中的默认数据库参数连接数据库,造成了上图的错误提示。

ThinkPHP6.0.2开发环境的一个BUG

那怎么解决呢,我刚开始企图删除这个默认参数,问题依旧出现,这次数据库名称对了,但还是拒绝访问,把config中database.php的中配在.env中重复设置一遍,问题解决,模型可以正常获取数据库中的内容了。


分享到:


相關文章: