数据库表设计
TP6实现
<?php
namespace app\controller;
use app\BaseController;
use think\facade\View;
use think\facade\Db;
use think\facade\Request;
use think\facade\Session;
use think\facade\Cookie;
class Index extends BaseController
{
public function index()
{
//显示菜单及子菜单判断
$menu = DB::name("class")->where("father_id", 0)->select()->toArray();
$father_nums = count($menu);
for ($i = 0; $i < $father_nums; $i++) {
$nums = DB::name("class")->where("father_id", $menu[$i]['id'])->select();
if (count($nums) > 0) {
$menu[$i]['has_child'] = 1;
}
}
dump($menu);
View::assign("menu", $menu);
return View::fetch();
}
}
注意:
- 先引入DB类,才可以操作数据库
- 查询的结果默认为对象格式,不可以进行数组操作,需要toArray转换成数组
- 对父菜单进行for循环,如果存在以当前父菜单的ID作为father_id的列,则认为存在子菜单
- 存在子菜单,添加'has_child'字段进行标注
- dump进行输出测试