부모 클래스의 모든 하위 클래스에 대한 데이터 조회 가져오기
1170 단어 php+mysql
$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;
}