很长一段时间,脑海里没有模型和控制器的区别,几乎把全部代码都敲在控制器里边了。 php
模型类的做用大多数状况是操做数据表的,若是按照系统的规范来命名模型类的话,大多数状况下是能够自动对应数据表。 数据库
最经常使用的一个数据表定义:就是你当前创建的模型名称并非你所对应的表,这时候只须要使用一个数据表名称的属性tableName,这个属性定义不须要表前缀。 3d
例如: code
class CategoryModel extends Model {
htm
protected $tableName = 'categories';
blog
}
get
这时候CategoryModel所对应得数据表名不是
Category,而是categories。 it
若是你的表名是没有前缀的,那么你须要tablePrefix这个属性来定义:
class CategoryModel extends Model {
protected $
tablePrefix=‘’;
}
为何必定要配置? 是由于,若是你配置这个属性的话,ThinkPhp会自动调取当前配置文件中的
DB_PREFIX
。
这时候你也许会发现,既然没有表前缀的都有属性,那么一些特别的表,前缀和普通表前缀不一样,怎么办?
Thinkphp也想到了这个问题,因此就有了$trueTableName属性,注意:这个属性须要完整的表名定义。
class CategoryModel extends Model {
protected $trueTableName
=‘cate_category’;
}
最后一个属性
$dbname,是使用另外一个数据库里的表。例如cate.cate.category
class CategoryModel extends Model {
protected $trueTableName
=‘cate_category’;
protected $dbname='cate';
}
模型定义问题大体就这些了。