### 說明
>[info] 模型是用來處理業務數據,邏輯的。
模型是對應著數據中的表的,主要是對數據的增刪改查進行操作的。具體請看 [模型定義](http://www.hmoore.net/manual/thinkphp5_1/354041)
>[info] #### 開始模型類的開發
在無限極分類當中,我們只用到了一個模型類,```Cate.php```,位置位于:```application\index\model\Cate.php```
**代碼如下**:
```
<?php
/**
* Created by PhpStorm.
* User: ye21st
* Email: ye21st@gmail.com
* Date: 2018/1/23
* Time: 16:50
*/
namespace app\index\model;
use think\Model;
/**
* 欄目模型類
* Class Cate
* @package app\index\model
*/
class Cate extends Model
{
/**
* 模型的初始化方法,可以用來書寫前置或后置方法
*/
protected static function init()
{
Cate::event('before_delete',function(){
return false;
});
}
/**
* 讓欄目樹 按照降序排序
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function catetree(){
$cateres=$this->order('sort desc')->select();
return $this->sort($cateres);
}
/**
* 排序方法
* @param $data
* @param int $pid
* @param int $level
* @return array
*/
public function sort($data,$pid=0,$level=0){
static $arr=array();
foreach ($data as $k => $v) {
if($v['pid']==$pid){
$v['level']=$level;
$arr[]=$v;
$this->sort($data,$v['id'],$level+1);
}
}
return $arr;
}
/**
* 通過ID 獲得子節點信息
* @param $cateid
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getchilrenid($cateid){
$cateres=$this->select();
return $this->_getchilrenid($cateres,$cateid);
}
/**
* 遞歸方法
* @param $cateres
* @param $cateid
* @return array
*/
public function _getchilrenid($cateres,$cateid){
static $arr=array();
foreach ($cateres as $k => $v) {
if($v['pid'] == $cateid){
$arr[]=$v['id'];
$this->_getchilrenid($cateres,$v['id']);
}
}
return $arr;
}
}
```
>[info] 至此,模型類開發完畢
- 序言
- 文檔更新狀態
- 錯誤提交
- 零、前期準備
- (1)PHP開發環境
- (2)PHP開發工具
- (3)數據庫相關
- (4)ThinkPHP5.1完全開發手冊
- (5)URL優化
- 一、用戶登錄
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - M(模型)
- (5)MVC - C(控制器)
- (6)源碼下載
- 二、無限極分類
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - M(模型)
- (5)驗證器
- (6)MVC - C(控制器)
- (7)源碼下載
- 三、TP5.1開發API接口,實現前后端分離
- (1)數據表設計
- (2)項目配置
- (3)HTML純靜態頁面
- (4)MVC - M(模型)
- (5)MVC - C(控制器)
- (6)源碼下載
- 四、TP5調用 API 接口
- (1)項目配置
- (2)MVC - V(視圖)
- (3)MVC - C(控制器)
- (4)源碼下載
- 五、文章分頁以及修改分頁樣式
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - M(模型)
- (5)MVC - C(控制器)
- (6)自定義分頁類
- (7)源碼下載
- 六、修改默認跳轉頁面
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - M(模型)
- (5)驗證器
- (6)MVC - C(控制器)
- (7)自定義跳轉頁面
- (8)源碼下載
- 七、整合markdown在線編輯器
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - C(控制器)
- (5)源碼下載
- 八、整合PHPExcel導入導出功能
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - C(控制器)
- (5)源碼下載
- 九、整合Echarts
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - C(控制器)
- (5)源碼下載
- 十、接入AntV G2(可視化圖形)
- (1)數據表設計
- (2)項目配置
- (3)MVC - V(視圖)
- (4)MVC - C(控制器)
- (5)源碼下載