码迷,mamicode.com
首页 > 其他好文 > 详细

实现根据父节点显示子节点的无极限分类的完整操作

时间:2017-04-29 16:11:33      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:菜单   pid   parent   cti   link   items   control   ret   name   

技术分享

 数据表是设计 包含 id  name   pid   三者 就可以了

 

第一步: controller:

  

public function actionFunctionPoint()
    {
        $items = FunctionPoint::getFunctionPoint();

        return $this->render(‘function-point‘, [
            ‘items‘ => $items,
        ]);
    }

第二部 model操作数据库 

 /**
     * 获得所有系统功能
     * @return array
     */
    public static function getFunctionPoint()
    {
        $data = [];
        self::_getFunctionPointList($data,0,1);
        return $data;
    }

    /**根据父类元素 查询所有子类原生
     * @param $parentId  pid
     * @return array
     */
    public static function _getFunctionPointList(&$data,$parentId,$level)
    {
        $sql = ‘SELECT * FROM t_boss_function_point WHERE is_deleted =0 AND parent_id =:parentId‘;
        $cmd = \Yii::$app->db->createCommand($sql);
        $cmd->bindValue(‘:parentId‘, $parentId);
        $results = $cmd->queryAll();
        foreach ($results as $result) {
            $result[‘level‘] = $level;
            array_push($data,$result);
            self::_getFunctionPointList($data,$result[‘id‘],$level+1);
        }
    }

第三步 :view视图的展示

 <table class="table table-bordered table-hover">
            <thead>
            <tr>
                <th>功能点名称</th>
                <th>功能点所对应的controller</th>
                <th>功能点所对应的action</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td style="text-align: left">系统功能点</td>
                <td></td>
                <td></td>
                <td>
                    <a class="btn btn-link" href="javascript:onOperateData(‘add‘)">添加子菜单</a>
                </td>
            </tr>
            <?php foreach ($items as $item): ?>
                <tr>
                    <td style="text-align: left;padding-left: <?= $item[‘level‘]*25 ?>px"><?= $item[‘name‘] ?></td>
                    <td>
                        <?= $item[‘controller‘] ?>
                    </td>
                    <td><?= $item[‘action‘] ?></td>
                    <td>
                        <a class="btn btn-link" href="javascript:onOperateData(‘add‘,‘<?= $item[‘id‘] ?>‘)">添加下级功能点</a>
                        <a class="btn btn-link" href="javascript:onOperateData(‘edit‘,‘<?= $item[‘id‘] ?>‘)">编辑</a>
                        <a class="btn btn-link" href="javascript:deleteFunctionPonit(‘<?= $item[‘id‘] ?>‘)">删除</a>
                    </td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>

 

 

  

实现根据父节点显示子节点的无极限分类的完整操作

标签:菜单   pid   parent   cti   link   items   control   ret   name   

原文地址:http://www.cnblogs.com/lt-com/p/6785273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!