ThinkPHP 模型(Model)命名规范

一个小问题搞了好久:如果数据库的表名中有下划线,那么在用thinkphp做自动完成时注意Model类的命名要变成驼峰法,文件名和类名都要变。( 另外注意:只有使用create方法创建数据时才能调用到自动验证和自动完成 )

ThinkPHP 模型(Model)命名规范

模型命名规范
ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范。首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义。一些例子如下:
表名(不含前缀)模型名称(类名)文件名例子
userUserModelUserModel.class.phpclass UserModel extends Model{}
user_groupUserGroupModelUserGroupModel.class.phpclass UserGroupModel extends Model{}
提示:系统以驼峰命名法来识别带下划线的表名。
当项目中的表命名规则和 ThinkPHP 中的约定不符时(常常会有这种情况),ThinkPHP 允许对 Model 类的 tableName 和 trueTableName 属性进行设置以达到兼容的目的。
tableName 属性
当表前缀和系统设置的前缀(DB_PREFIX)一致而表名和模型名称不一致时,可设置此属性,例如表名称为 users ,而模型名称为 UserModel ,那么需要在模型类设置:
class UserModel extends Model{ protected $tableName = ‘users‘; }
trueTableName 属性
如果表的前缀跟系统设定的不一致(表名和模型名可能一致)时,需要设定模型的 trueTableName 属性:
class UserModel extends Model{ protected $trueTableName = ‘my_user‘; }
注意 trueTableName 值为完整的表名(包括前缀)。
dbName 属性
dbName 属性定义模型当前对应的数据库名称,只有当前的模型类对应的数据库名称和配置文件不同的时候才需要定义:
protected $dbName = ‘cdb‘;
表后缀
当设定了表后缀时,系统会自动识别表后缀,那么对应的定义如下:
表名(不含前缀)后缀 模型名称(类名)文件名
log001001 LogModelLogModel.class.php
当然如果不定义后缀,也可以单独每个模型类定义 tableName 属性,这个视乎实际情况来采取何种策略。

时间: 2024-10-12 16:51:51

ThinkPHP 模型(Model)命名规范的相关文章

这次一定理清晰ThinkPHP之中的模型、数据库之间命名规范

ServiceSiteModel.class.php 这个模型操控的数据库是service_site表: 1 <?php 2 namespace Admin\Model; 3 use Think\Model; 4 class ServiceSiteModel extends Model { 5 6 private $page = ""; 7 8 private $countNum = ""; 9 10 public function getList($page

模型命名规范

模型命名规范 ThinkPHP 对数据库的表名和模型类的命名遵循一定的规范.首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的数据表名称,并且首字母大写,然后加上模型类的后缀定义.一些例子如下: 表名(不含前缀) 模型名称(类名) 文件名 例子 user UserModel UserModel.class.php class UserModel extends Model{} user_group UserGroupModel UserGroupModel.class.php

从&quot; ThinkPHP 开发规范 &quot;看 PHP 的命名规范和开发建议

稍稍水一篇博客,摘抄自Think PHP 的开发规范,很有引导性,我们可以将这些规范实践到原生 PHP 中. 命名规范 使用ThinkPHP开发的过程中应该尽量遵循下列命名规范: 类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php: 类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 App

PHP命名规范

使用PHP写的框架必然有其自身的一定规范,在 ThinkPHP 中亦然.下面是使用 ThinkPHP 应该尽量遵循的命名规范: 2  类文件都是以 .class.php 为后缀(这里是指的 ThinkPHP 内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php . 2  函数.配置文件等其他类库文件之外的一般是以 .php 为后缀(第三方引入的不做要求). 2  确保文件的命名和调用大小写一致,是由于在类 Unix 系统上面,对

iOS开发(OC)中的命名规范

开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结构也算清晰,因为我一直以来都是代码看的多写的多,但是总结的比较少,知识经常不成体系.以后多花点时间把自己的经验和学习知识加以总结一下吧,这样有利于去指导新人,也更有利于加深自己的知识认知.今天就从代码规范入手总结一下iOS开发中好的编码规范吧.我们在开发中看别人的代码的时候经常会去抱怨至少内心里骂娘

.NET设计规范————命名规范

NET设计规范:约定.惯用法与模式———命名规范 前言: 最近在看<.NET设计规范:约定.惯用法与模式>一书,主要还是讲.NET的设计规范,以前对这一块也不是特别在意,最近想要把这些系统的学习一下,以下基本上算是读书笔记吧. 第三章命名规范 3.1 大小写约定 使用合适的大小写可以使类型.成员以及参数的标识符更容易阅读 3.1.1 标识符大小写原则 为了区分一个标识符中的多个单词,把标识符中的每个单词的首字母大写,有以下两种合适的方法来大写标识符中的字母,如下: l  Pascal Casi

TP框架---thinkphp模型

1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法. public function test() { //echo "这是测试的" //$this->assign("a","world"); //$this->show(); var_dump(get_defined_constants());//获取系统常量信息.里面加上参数true,就会按照类把所有的信息显示出来. } 系统信

thinkphp模型

1.获取系统常量信息的方法:在控制器DengLuController里面下写入下面的方法,然后调用该方法. public function test() { //echo "这是测试的" //$this->assign("a","world"); //$this->show(); var_dump(get_defined_constants());//获取系统常量信息.里面加上参数true,就会按照类把所有的信息显示出来. } 系统信

命名规范(3)标识符的命名

命名规范(1)大小写约定 命名规范(2)通用命名约定 程序集和DLL的命名 程序集是一个部署单元,同时还代表托管程序的身份,虽然程序集可以分布在一个或多个文件中,但一般一个程序集仅与一个DLL相对应.夸文件的程序集很少使用,Visual Studio也没有支持他的内建. 命名空间与DLL和程序集是不同的概念,命名空间对开发人员来说是一组逻辑实体,而DLL和程序集则是用于打包和部署的一个单元.DLL可以包含多个命名空间,由于命名空间的组织方式与DLL不同,所以可以单独设计,而不需要讲两者强制关联.