模型定义,默认情况下,ThinkPHP的模型类是位于/Home/Model/目录之下,模型类通常需要继承系统的/Think/Model类或其子类,下面是一个Home/Model/UserModel类的定义:
文件命名遵守UserModel.class.php的方式,跟控制器的命名一样
<?phpnamespace Home/Model;use Think/Model;class UserModel extends Model {}
模型类的作用大多数情况是操作数据表的,如果按照系统的规范来命名模型类的话,大多数情况下是可以自动对应数据表,但你可以根据自己的需求来定制自己的数据表设置和操作。
首先我们需要在配置文件设置我们的数据库连接信息:
'DB_TYPE' => 'mysql', 'DB_HOST' => 'localhost', 'DB_NAME' => 'database', 'DB_USER' => 'username', 'DB_PWD' => 'password', 'DB_PORT' => '3306',
这些配置信息还是在/Home/Conf/config.php文件里设置。
指定数据表前缀
指定标前缀,我们在第一课的配置项已经指定,以下的文字表示你可以灵活配置你的数据表。
protected $tablePrefix = 'top_';
如果数据库的表没有表前缀,使用空字符串代替
protected $tablePrefix = '';
指定数据表,此处的指定的数据表的不需要添加表前缀:
protected $tableName = 'user';
举个例子说,比如说你的数据库中有一个没有表前缀的,名为users的数据表,可以用以下的两种方法在模型中进行下面的定义:
第一,直接根据系统的规范来命名模型类来命名模型,比如说就命名为UsersModel那么只需要在这个类里面加上下面的设置就可以了:
protected $tablePrefix = '';
ThinkPHP系统就会自动定位到users表了。
第二种情况时,如果你的模型类没有按照系统规范来命名,比如说不小心命名为UserModel,这种情况下可以同时指定表前缀和表明,比如:
protected $tablePrefix = '';protected $tableName = 'users';
或者你直接指定trueTableName:
protected $trueTableName = 'users';
既然模型通常是用来操作数据表,那么我们来看看模型的基本CURD:
注:为了方便演示,我们在UserController中定义一个testDemo()方法用于演示
public function testDemo() { }
以下的代码将会一段一段在这个方法里演示,你可以通过访问http://localhost:8999/index.php/Home/User/testDemo来看到实际效果。
添加纪录
$user = M('User');$data['username'] = 'ThinkPHP';$data['email'] = 'ThinkPHP@gmail.com';$user->create($data);$record = $user->add();dump($record);
新闻热点
疑难解答