Thinkphp模型问题(一)

很长一段时间,脑海里没有模型和控制器的区别,几乎把全部代码都敲在控制器里边了。 php

来自于ThinkPhp3.2.3手册模型定义 html

​​​​​​​模型类的做用大多数状况是操做数据表的,若是按照系统的规范来命名模型类的话,大多数状况下是能够自动对应数据表。​​ 数据库

模型类的命名规则 url

最经常使用的一个数据表定义:就是你当前创建的模型名称并非你所对应的表,这时候只须要使用一个数据表名称的属性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';

}

模型定义问题大体就这些了。​

相关文章
相关标签/搜索