在这里小编有必要介绍一下什么是模型,下面是复制官网的说明,小编用最普通的话说明一下什么是模型: ### 实现数据库中的增删查改这就是模型   模型在ThinkPHP中基础的模型类就是Think\Model类,该类完成了基本的CURD、ActiveRecord模式、连贯操作和统计查询,一些高级特性被封装到另外的模型扩展中。   基础模型类的设计非常灵活,甚至可以无需进行任何模型定义,就可以进行相关数据表的ORM和CURD操作,只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的。   这里小编发表一下个人意见: 1. 在很多和thinkphp爱好者们交流的时候,在他们第一次写项目的时候都很少使用模型,之用到控制器和视图,这里小编就要表示一下,如果你不用模型,怎么能够体现MVC架构的优点,怎么能够对的起Thinkphp的作者在模型中做来很大的贡献,所以我们一定要灵活运用MVC框架 2. 模型不会使用的,请查看官方文档之后再查看小编的文档。 #### 多余的不解释,实战才是检验标准唯一准则 1.在Application/Admin/Mode/目录下创建CateModel.class.php默认代码如下 ~~~ <?php namespace Admin\Model; use Think\Model; class CateModel extends Model{ } ~~~ 2.在模型添加如下函数 ~~~ //作用:自动验证 protected $_validate=array( array('catename','require','必须填写名称!',1,'regex',1), ); //作用:获取分类信息 public function getLevelList() { $list= $this->order('sort asc')->select(); return tree($list); } //作用:添加分类信息 public function addcate($data){ if (!$this->create($data)){ return $this->getError(); }else{ return $this->add($data); } } ~~~ 3.在Application/Common/Common/目录下创建function.php添加tree函数 ~~~ /** * 数组层级缩进转换 * @param array $array * @param int $pid * @param int $level * @return array */ function tree($array, $pid = 0, $level = 1) { static $list = []; foreach ($array as $v) { if ($v['pid'] == $pid) { $v['level'] = $level; $list[] = $v; tree($array, $v['id'], $level + 1); } } return $list; } ~~~