부모 클래스의 모든 하위 클래스에 대한 데이터 조회 가져오기

1170 단어 php+mysql
Controller.php
$cid = Yii::$app->request->get("id");

$cat = new BieshuCat();
$data = $cat->getData();
$allcat = $cat->getTree($data,$cid);

$catarr = array_reduce($allcat , function($result , $v){
            return $result.','.$v['id'];
        });

$catarr = explode(",",$cid.$catarr);

$model = Bieshu::find()->where(['in','cat_id',$catarr]);

Model.php
 public function getData($status = 1)
    {
        if( $status > ConstantMapService::$status_default ){
            $cates = self::find()->where([ 'status' => $status ])->all();
        }else{
            $cates = self::find()->all();
        }
        $cates = ArrayHelper::toArray($cates);
        return $cates;
    }

    public function getTree($cates, $pid = 0)
    {
        $tree = [];
        foreach($cates as $cate) {
            if ($cate['parentid'] == $pid) {
                $tree[] = $cate;
                $tree = array_merge($tree, $this->getTree($cates, $cate['id']));
            }
        }
        return $tree;
    }

 

좋은 웹페이지 즐겨찾기