1.视图文件
<table border="1">
<tr>
<td>id</td>
<td>分类名称</td>
</tr>
<?php foreach($list as $k1=>$v1):?>
<tr>
<td><?php echo str_repeat('-',$v1['num']*8).$v1['id'];?></td>
<td><?php echo str_repeat('-',$v1['num']*8).$v1['catename'];?></td>
</tr>
<?php endforeach;?>
2.cate模型文件
<?php
namespace app\models;
use Yii;
// 模板继承的下面这个是为了数据库操作
use yii\db\ActiveRecord;
use yii\db\Query;
/**
* This is the model class for table "country".
*
* @property string $code
* @property string $name
* @property int $population
*/
class Cate extends ActiveRecord
{
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'cate';
}
//得到全部的分类用于生成树状结构数据, 但是此时还是普通二位数组
public function findCate(){
$list = (new Query())
->from('cate')
->all();
return $list;
}
}
3.控制器文件
<?php
namespace app\controllers;
use app\models\Cate;
use yii\web\Controller;
class CateController extends Controller{
public function actionIndex(){
//实例化对象
$model = new Cate();
$catelist = $model->findCate();
//调用Cate方法传获取到的分类信息给该方法去处理
$list = $this->actionDigui($catelist);
return $this->render("index",["list"=>$list]);
}
private function actionDigui($data,$parent_id=0,$num=0){
static $res = array();
foreach($data as $v){
if($v['parentid'] == $parent_id){
$v['num'] = $num;
$res[] = $v;
$this->actionDigui($data,$v['id'],$num+1);
}
}
return $res;
}
}
?>
4.展示
5.数据库表
测试数据
喜欢的点赞加关注,老铁们一起加油!