123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace app\admin\model;
- use think\Model;
- class Cat extends Base
- {
- protected $schema = [
- 'id' =>'int',
- 'cat_name' =>'varchar',
- 'pid' =>'int',
- 'level' =>'int',
- 'creater' =>'varchar',
- 'createrid' =>'bigint',
- 'cat_desc' =>'text',
- 'fund_code' =>'varchar',
- 'weight' =>'int',
- 'search' =>'varchar',
- 'status' =>'int',
- 'is_del' =>'tinyint',
- 'addtime' =>'datetime',
- 'updatetime' =>'datetime',
- ];
- protected $createTime='addtime';
- protected $updateTime='updatetime';
- public function specs(){
- return $this->hasMany(CatSpecs::class,'cat_id','id');
- }
- public static function onBeforeWrite(Model $model) : void{
- if($model->pid>0){
- $parent = self::findOrEmpty($model->pid);
- if($parent->isEmpty()){
- $model->level = 1;
- $model->search = $parent->cat_name;
- }else{
- $model->level = $parent->level+1;
- $model->search = $parent->search.'_'.$model->cat_name;
- }
- }
- }
-
- public static function GetCatListByChildId($cat_id,&$catArr=[]){
- $cat = self::where(['id'=>$cat_id,'is_del'=>0])->field("id,cat_name,pid,status")->findOrEmpty();
- if($cat->isEmpty())return [];
- array_unshift($catArr,$cat );
- if($cat->pid>0){
- self::GetCatListByChildId($cat->pid,$catArr);
- }
- return $catArr;
- }
-
- public static function GetCatListByPid($pid=0){
- $cat = self::field("id,cat_name,pid,status")->where(["pid"=>$pid,"is_del"=>0])->select();
- return $cat;
- }
- }
|