The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
模型命名

当我们创建一个UserModel类的时候,其实已经遵循了系统的约定。DyhbFrame要求数据库的表名和模型类的命名遵循一定的规范,首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义,例如:

UserModel 表示User数据对象,(假设数据库的前缀定义是 dyhb_)其对应的数据表应该是

dyhb_user


如果你的规则和系统的约定不符合,那么就会抛出异常。

在DyhbFrame的模型里面,有两个数据表名称的定义:

注意:tablename 不包含表前后缀的数据表名称,一般情况下默认和模型名称相同,只有当你的表名和当前的模型类的名称不同的时候才需要定义。


下面举个例子来加深理解:

例如,在数据库里面有一个dyhb_categories表,而我们定义的模型类名称是CategoryModel,按照系统的约定,这个模型的名称是Category,对应的数据表名称应该是dyhb_category(全部小写),但是现在的数据表名称是dyhb_categories,因此我们就需要设置tableName属性来改变默认的规则(假设我们已经在配置文件里面定义了DB_PREFIX 为 dyhb_)。


protected $tablename = 'categories';  


注意这个属性的定义不需要加表的前缀dyhb_


除了数据表的定义外,还可以对数据库进行定义:

dbname 定义模型当前对应的数据库名称,只有当你当前的模型类对应的数据库名称和配置文件不同的时候才需要定义,例如:

protected $dbname = 'my_db';