用yii框架做了一个无限极分类,主要的数组转换都是粘贴的别人的代码,但还是不要脸的写出来,方便以后自己看
用的是
递归
,不是path路径控制器:
public function actionCreate()
{
$model = new EcsCategory();
$query = new \yii\db\Query();
$query->select('*')
->from('ecs_category');
$command = $query->createCommand();
$res=$command->queryAll();
$tree = $this->subtree($res,1);
foreach($tree as $k=> $v) {
$tree[$k]['new_cat_name']=str_repeat('--',$v['lev']).$v['cat_name'].str_repeat('--',$v['lev']); //str_repeat — 重复一个字符串
}
$arr=array(
'new_cat_name'=>'顶级分类','cat_id'=>0
);
array_unshift($tree,$arr);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view','id' => $model->cat_id]);
} else {
return $this->render('create',[
'model' => $model,'data'=>$tree,]);
}
}
视图:
<?= $form->field($model,'parent_id')->dropDownList(ArrayHelper::map($data,'cat_id','new_cat_name'),['prompt' => '请选择父级分类']) ?>