# 定义模型 HDPHP 框架提供了高效的 Model(模型)操作机制,具有以下特点: 1. 可以对基础模型类进行随意的扩充 2. 支持加载其他模块或其他应用类某个模块的模型 3. 丰富的加载模型方式 4. 功能强大的数据操作方式 5. 自动验证 6. 自动完成 7. 自动映射 8. 表单令牌 [TOC] >提示:所有查询构造器里的方法,查询 Model 模型时也可以使用。 ## 创建模型 你也可以通过 model:make 命令自动生成模型: ``` php hd make:model news ``` ## 模型定义 我们先从建立一个 Model 模型开始。模型通常放在 system\model 目录下,但是您可以将它们放在任何地方。 ``` namespace system\model; use houdunwang\model\Model; class News extends model{ protected $table = "news"; } ``` 模型数据表是可选的,如果不设置系统将取模型名做为表名,请看下面的代码: ``` class News extends Model{ } ``` 模型定义并没有设置$table 属性,那么系统会将模型名称转为小写后做为表名。 还有一种情况,如果我们有一个数据表user_role,我们在不设置表名时如何定义模型名呢?代码如下: ``` class UserRole extends Model{ } ``` 系统会自动将UserRole 转为 user_role 做为表名使用。 上面的命令会在system\model目录下创建 News.php模型文件 ## 模型方法 #### 静态调用 静态方法或[结构查询器](http://www.kancloud.cn/houdunwang/hdphp3/215185)的方法可以使用静态调用 ``` News::find(1); ``` #### 模型方法 ``` $model = new News; $model->模型方法(); ```