本文主要是介绍thinkphp5.0 自定义命令 操作数据库问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
tp5的命令行 模式不能使用模型层,就是操作不了数据库的问题。我的解决思路有两个。
第一个:自定义命令里面既然不能使用模型层的话,就用接口的方式实现,用curl 调用本项目的接口 ,操作数据库。
第二个:这个思路就是要理解tp框架的执行原理。首先浏览器请求过来到框架的入口文件,tp的入口文件做了很多事情,其中重要的一个就是加载配置,当然也包括加载数据库配置,然后就可以使用定义的模型层,操作数据库了,说道这里可能很多phper都已经明白了,命令行下,没有执行入口文件也就没有加载数据库配置,当然也就不能操作数据库了,不能直接 UserModel::find(1) 这种操作,也就是说没有连接数据库,解决办法就是在命令行模式下先连接数据库,然后再操作数据库。
实践:
项目中使用tp5.0自定义命令行删除产品的需求,首先按照tp5手册 步骤:
然后我们来修改Test类的execute 方法:
执行结果:
这样就可以查询数据库的信息了,也可以使用tp的Db类进行操作数据库了,但必须保证每一次都要连接数据库。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
这篇关于thinkphp5.0 自定义命令 操作数据库问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!