C 即 Create 创建

    U 即 Update 更新

    R 即 Read 读取

    D 即 Delete 删除

    我们首先定义一个数据模型,这个模型会自动关联gf_blog数据表,数据表中字段为:id、title、content、ctime、utime,分别是自动编号、文章标题、文章内容、创建时间、更新时间。

    class BlogModel extends GF_Model {

    这样模型我们便设计好了,我们通过实例化模型即可对数据表进行CURD操作了,实际上如果只是这样简单的操作数据表的情况下我们都不需要创建模型,而更多时候我们可能需要在模型中做其他事情,比如数据格式转换,更新统计数据、更新缓存等。

    现在我们来设计一个控制器使用BlogModel中定义的方法,我们假设上述模型所在的文件路径为/App1/Model/Blog/BlogModel.php

    控制器路径为/App1/Controller/Home/BlogController.php

    class BlogController extends GF_Controller {

    }

    本文为您详细介绍了模型的CURD方法以及控制器调用模型,实际上控制器可以不通过模型文件直接对数据表进行操作。还记得快速实例化数据表的方法吗?看如下代码:

    }

    实际上这个全新定义的控制器是不需要开发人员定义模型文件的,这样是不是更加简单呢!

    本文介绍了两种风格对数据表进行CURD的方式:

    一种需要开发人员定义模型类,引用方式为D('Home.Blog'),其中Home为模型分组,这不是必须的,如果BlogModel.php文件直接放在Model目录下,也就是/App1/Model/BlogModel.php,那么实例化的方法就是D('Blog'),这样就不需要分组了。模型分组只是用来更清晰的管理模型文件,但不是必须的。

    另外一种方式是不需要定义模型类即可对数据表进行CURD操作,这样会更加便捷,方法是M('blog'),便可以快速实例化gfblog数据表,其中gf是配置文件中定义的数据表前缀。这种方式的优点是便捷,缺点是没有定义模型文件将来必然会在控制器中有很多数据处理代码,使得控制器文件臃肿,所以还是建议开发人员针对每一张数据表定义Model类文件。同样,Model类存在的另一个意义在于复用,所以从这个角度来说一些数据处理还是需要封装在Model类文件中。