belongsTo('app\admin\model\Course', 'course_id', 'id', [], 'LEFT')->setEagerlyType(0); } /** * 获取目录列表 * @param $courseId * @return array */ public function courseIdGetList($courseId){ $parentDir = $this->selectDir($courseId); if(!$parentDir){ return []; } foreach ($parentDir as &$child){ $children = $this->selectDir($courseId,$child['id']); if($children){ $child['children'] = $children; } } return $parentDir; } /** * 查询目录 * @param $courseId * @param $pid * @return mixed */ public function selectDir($courseId,$pid = 0){ $list = self::where(['course_id'=>$courseId,'p_id'=>$pid])->order('sort asc')->select(); if($list){ foreach ($list as &$item){ $item['count'] = ColumnBind::where([ 'column_id'=>$courseId, 'dir'=>$item['id'] ])->count(); } } return $list; } /** * 删除 * @param $id * @return bool */ public function del($id){ $info = self::where(['id'=>$id])->find(); if(!$info){ return false; } self::where(['id'=>$id])->whereOr(['p_id'=>$id])->delete(); return true; } /** * 获取排序 * @return void */ public function defineSort($courseId,$pid){ $maxItem = self::where([ 'course_id'=>$courseId, 'p_id'=>$pid ])->field("sort")->order("sort desc")->find(); if(!$maxItem){ return 0; } return $maxItem['sort'] + 1; } }