【摘要】:接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。
接下来将使用CodeIgniter实现一个简单的新闻列表,用户点击列表中的新闻标题将会进入新闻的正文页面,通过该例子演示CodeIgniter实现MVC开发的流程。
1.创建数据表
为了方便演示CodeIgniter模型的调用机制,新闻标题将使用数据表存放。首先在MySQL中创建名为codeigniter数据库,然后创建一个news表,SQL代码如下。
接着向news表添加新闻数据。
创建完数据库和表之后,还需要更改CodeIgniter的数据库连接配置参数,打开application/config/database.php文件,修改该文件的配置参数,代码如下。
以上配置信息读者需要根据MySQL实际环境而定,其中较为重要的是$db['default']['dbdriver']和$db['default']['char_set']。前者指定连接驱动,CodeIgniter支持Oracle、MySQL、PostgreSQL等多种驱动;后者指定数据库的查询编码,对于MySQL必须要指定查询编码。
2.创建模型
接下将创建news数据表对应的实体模型,进入application/models目录,创建一个MNews.php模型文件,该文件内容如以下代码所示。
如以上代码所示,模型的名称必须首字母大写,并且继承于CI_Model类,__construct()是模型的构造函数,该函数将实例化基类CI_Model的构造函数,这样才能在当前模型中使用构造函数(否则不能使用构造函数)。get_news_all()用于获取news表中的所有新闻标题,其中$this->db->query()指定使用CI_Model提供的数据库查询方法。
3.创建控制器(www.chuimin.cn)
创建模型后,还需要创建控制器,然后调用模型中的方法,最终将结果显示到视图界面上。进入application/controllers目录,创建一个名为news.php的控制器文件,代码如下所示。
如以上代码所示,一个合法的控制器类名必须为首字母大写,类名与控制器文件名同名,并且必须继承于CI_Controller基类。在CodeIgniter中,控制器命名规则比较灵活,它不需要加前缀或后缀,一个普通的文件即可。$this->load->model()用于载入模型,该方法共有3个参数,第1个参数指定模型的名称;第2个参数指定模型的配置信息,即数据库配置信息,如果留空将使用application/config/database.php全局文件配置信息;第3个参数指定数据库连接的初始化状态,默认情况下CodeIgniter并不会自动连接数据库,需要将该参数设为true模型才会连接指定的数据库。
4.创建视图
在MVC设计中,一个动作就代表一个页面。以前面创建的index动作为例,它对应的视图文件就是index.php。CodeIgniter默认的视图文件以.php作为视图文件,开发人员可以在视图中使用标准的PHP代码。当然CodeIgniter内置了parser视图引擎,支持使用.html文件作为视图模板。此外,CodeIgniter还能以扩展的方式支持Smarty作为模板引擎,但出于性能考虑,CodeIgniter只建议开发者使用标准的PHP文件作为视图文件。
进入application/views目录,在该目录中创建一个名index.php的视图文件,代码如下所示。
index动作还使用了head及foot视图文件,这两个视图用于实现网站整体布局。分段视图文件载入不仅利用网站布局,还能实现页面的局缓存,提高页面的载入速度。application/views/head.php代码如下所示。
application/views/foot.php代码如下所示。
以上就是一个典型CodeIgniter视图处理过程,在实际开发中可根据需求在head.php中定义页面的布局及样式代码。最后打开http://localhost/CodeIgniter/index.php/News网址,将能够查看到news数据表中的新闻标题数据。
相关推荐