齐博x1第四季《模块插件的制作》系列23- 从数据库读取数据

2021-12-01 作者:torylf 分类:教程 阅读:1575

之前建立过一个数据库,前面一直在说公共表单器的使用,下面我们开始说下,从数据库读取数据


这里分几种情况,一种我们作为简单开发,只需要修改一些简单的业务上的逻辑,就可以成为一个应用。

通常喜欢复制我们系统cms的模块来修改。那么一般这种很简单,直接使用公共代码即可。如下:


打开此文件application\common\controller\admin\C.php(参考index方法,和listall方法)

因为我们复制来的应用模块,通常都是通用的数据库结构,比如内容表,就是contents,content1......等

这种通用的数据库结构的模型,直接利用官方封装好的方法调用即可获取数据

分类数据:

所有数据:

所以此类数据库结构类似模型基本都是直接调用,因为本身继承了C的类。比较简单。


下面我们说说另一种情况,我们自己从零开发的模块,非继承公共C类的结构模型,如何读取数据库数据

比如我们前面章节建立的一个数据库qb_test_db


这里我们回顾下前面的代码,我们模拟了一个数组数据,(可参考前面章节)


我们现在直接从数据库里读取相类似的数据


第一种方法,我们直接在控制器里利用TP提供的相关方法读取

$data =  Db::name('test_db')->select();

我们这里直接用Db::name来读取,具体使用方式请参考TP文档,这里不做详细说明,属于TP框架知识范畴

注意:需要在头部引用think\tb,否则报错

我们再看结果:

我们可以看到之前建立的公共列表页面已经读取了数据库的数据,此处不是模拟的数据了

对比数据库:

我们可以看到6条数据都读取出来了


第二种方法:在模型里读取

为什么要在模型里读取,因为我们本身是所属MVC架构,M模型里才是处理数据的地方,我们在C,控制器里处理数据是不规范的

各自分工,才能有好的健壮稳定性系统。

简单的应用如果偷懒不是那么严谨,或者学习研究,可以直接在控制器里读写数据,方便调式,真正应用还是养成良好的习惯。

我们之前建立数据库的时候引入了一个模型类,我们现在看下对应文件

打开 application\xyz\model\Test.php 如下:

只定义了一个属性,指明数据库表。我们现在定义一个方法 getDbList()

我们直接调用模型的all方法 可以获取所有数据,此处没有任何条件附加,只为演示,真正使用肯定要添加一些条件,否则效果极差

(各种模型方法,请参考TP框架文档,此处不做TP教学)


添加完成数据库方法后,我们返回控制器,需要调用此模型方法才可以读取数据到公共列表页


注意此处$this->model,我们需要实例化下,为了各个方法都可以使用,我们在初始化方法里,new一个实例

不实例化调用模型方法会报错


注意,实例化类,需要引入对应的模型类,否则报错;

引入模型类的时候,需要AS 一个别名,因为模型通常和控制类名是同名,否则会报已经使用的错误;


现在我们再看结果:


和上面的数据是一样的,都获取了全部的数据库数据.









来源: 神盾工作室    转载请注明出处!

本文地址:https://www.shieldsoho.com/article/122.html

{{item.nickname}} @回复
发表于{{item.create_time}}

  • {{replyitem.nickname}} {{item.create_time}}
    @{{item.nickname}}

查看更多评论