• 递归


    public function _initialize()
    {
    if (!Session::has('user', 'think')) {
    $this->error('您还没有登录', 'Login/index');
    }
    }

    public function index()
    {
    $value=Session::get("user","think");
    $uid=$value["uid"];
    $data = Db::query("select * from access where aid in (select a_id from r_a where r_id in (select r_id from u_r where u_id=$uid))");
    $res=$this->digui($data);
    Session::set("access",$res,"think");
    return view("index",['list'=>$res,'data'=>$value]);
    }

    public function digui($data,$level=0,$pid=0){
    static $array=array();
    foreach($data as $k=>$v){
    if($v['pid']==$pid){
    $v['level']=$level;
    $v['url']=$v['controller_name']."/".$v['action_name'];
    $array[]=$v;
    $this->digui($data,$level+1,$v['aid']);
    }
    }
    return $array;
    }

    //join查询递归

    $data=Db::table("user")
    ->join('user_role','user.uid=user_role.u_id')
    ->join('role','user_role.r_id=role.rid')
    ->join('role_node','role.rid=role_node.r_id')
    ->join('node','role_node.n_id=node.nid')
    ->select();
    //print_r($data);
    $arr=[];
    foreach($data as $k=>$v){
    $arr['uid']=$v['uid'];
    $arr['uname']=$v['username'];
    $arr['role_name']=$v['r_name'];
    $arr['one_menu'][]=['n_name'=>$v['n_name'],'n_url'=>$v['n_url'],'pid'=>$v['pid'],'n_id'=>$v['nid']];
    }
    // print_r($arr);
    foreach($arr['one_menu'] as $kk =>$vv){
    $res =Db::table("node")->where("pid=".$vv['n_id'])->select();
    $arr['one_menu'][$kk]['two_menu'] =$res;
    }
    // print_r($arr);
    return view("home",['list'=>$arr]);


    <a href="index.html">退出</a>
    <p>当前登录账号:{$list.uname}</p>
    <p>当前登录账号:{$list.role_name}</p>
    <p>权限:</p>
    <div>
    <ul class="one">
    {volist name="list.one_menu" id="v"}
    <li><a href="{$v.n_url}" class="cli">{$v.n_name}</a></li>
    <div style="display: none">
    <ul>
    {volist name="v.two_menu" id="vo"}
    <li class="two"><a href="{$vo.n_url}">{$vo.n_name}</a></li>
    {/volist}
    </ul>
    </div>
    {/volist}
    </ul>
    </div>
    </body>
    </html>
    <script src="__STATIC__/js/jq.js"></script>
    <script>
    $(document).ready(function(){
    $(".cli").click(function(){
    $(this).parent().next("div").slideToggle();
    });
    });

  • 相关阅读:
    Sublime安装package control的操作
    Sublime的简单操作
    C# 泛型方法
    C# 数组的讲解(ArrayList 与List的区别)
    免费的天气API
    bootstrapValidator的验证
    sqlServer 多行合并为一行
    bootstrap的安装注意
    SQL数据库中把一个表中的数据复制到另一个表中
    JavaScript的误区
  • 原文地址:https://www.cnblogs.com/gwhm/p/10223673.html
Copyright © 2020-2023  润新知