现在,您已经安装和配置了 CodeIgniter,接下来即可构建项目,这项工作至少要占用一个小时的时间。
这一次,我们不会构建 Hello World 应用程序,而是使用 CodeIgniter 创建一个简单的 Web 站点。该站点将有一个主页,显示一些宣传文本和一个表单,该表单将发布到数据库表中。无需为其外观费心 — 只需关注对应用程序有用的部分即可。换句话说,让美工去关心外观 — 您只要确保一切可以正常工作、迅速完成即可。
按照 CodeIgniter 的术语,可将这些需求转换为以下内容:
1: 一个控制器,仅包含少数功能(可使用默认的 Welcome 控制器)
2: 一个模型(以及一个数据库表),用于存储联系人信息
3: 一个主视图,包含一些支持
创建数据库表和模型
从模型入手可帮助您理解底层数据库表,之后再开始布设功能和 UI。如果对表将存储哪些内容认识不深,设计与表交互的表单将十分困难。
对于这个示例应用程序而言,您希望存储的是来自表单的联系人信息。那么需要的是哪些类型的联系人信息?目前而言,仅存储基本信息,要求提供姓名、电子邮件地址、电话号码和简短备注。您还可能希望在后台存储时间戳和 IP 地址。
MySQL 表应如下所示:
create table `contacts`(
`id` int(11) NOT NULL auto_increment,
`name` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
`notes` text NOT NULL,
`stamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`ipaddress` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
)ENGINE=INNODB;
现在我们已经有了表,接下来将创建第一个模型。在 system/application/models 文件夹内,创建一个 mcontacts.php 文件。为什么要将其命名为 mcontacts?这是一种速记形式 — 文件名中在模型名前加一个 m 可帮助您记住文件的组织方式,而不必使用更长的前缀或后缀,如 model_ 等。
所有模型都采用相同的方式构造:
class Mcontacts extends CI_Model{
public function __construct(){
parent::__construct();
}
}
请注意,类名与文件名匹配,必须为类提供一个构造函数。换句话说,一个模型就是一个 PHP 类。这也就意味着模型中的所有函数实际上都是该类的一个方法。
理解这一点之后,很快就能领悟到,需要具备一个函数,将数据安全地插入联系人数据库表中。提供此功能的函数如下:
class Mcontacts extends CI_Model{
public function __construct(){
parent::__construct();
}
public function addContacts(){
date_default_timezone_set('PRC');
$now=date("Y-m-d H:i:s");
$data=array(
'name'=>$this->security->xss_clean($this->input->post('name')),
'email'=>$this->security->xss_clean($this->input->post('email')),
'notes'=>$this->security->xss_clean($this->input->post('notes')),
'ipaddress'=>$this->input->ip_address(),
'stamp'=>$now
);
$this->db->insert('contacts',$data);
}
}
注意,您获取了 POST 数组的输出、整理并将其存储在名为 contacts 的数据库表中。在此过程中,您使用了多个帮助程序来简化工作。
例如, this−>security−>xssclean整理表单字段的数据<