栏目的无限级分类 一般2~3层分类
名称前端代码写
<td>
<?php echo str_repeat('-',$cate['level']*14);?>
<a href="#">{$cate.cate_name}</a>
</td>
将分级代码写在实例模型当中 Cate.php 根据数据的pid 锁定上级分类
<?php
namespace app\admin\model;
use think\Model;
class Cate extends Model{
//给栏目分类 无限级排序 使层次分明
public function catetree(){
$cateRes = $this->order('id desc')->select();
return $this->sort($cateRes);
}
public function sort($cateRes,$pid=0,$level=0){
static $arr = array();
foreach ($cateRes as $k => $v){
//第一次寻找顶级栏目 默认pid顶级为0 已赋默认值
if ($v['pid']==$pid){
$v['level'] = $level;
$arr[] = $v;
//递归
$this->sort($cateRes,$v['id'],$level+1);
}
}
//halt($arr);
return $arr;
}
}
新增数据代码 前端样式
<div class="form-group">
<label for="username" class="col-sm-2 control-label no-padding-right">上级栏目</label>
<div class="col-sm-6">
<select name="pid">
<option value="">顶级栏目</option>
{volist name="cateRes" id="cateRes"}
<option value="{$cateRes.id}">{$cateRes.cate_name}</option>
{/volist}
</select>
</div>
<p class="help-block col-sm-4 red">* 必填</p>
</div>
根据Cate.php