摘要:<?php /** * Created by PhpStorm. * User: 12757 * Date: 2019/4/16 * Time: 18:32 */namespace app\admins\controller;use think\Controller;use Util\SysDb;class Menu extends Base{    public func

/**

* Created by PhpStorm.

* User: 12757

* Date: 2019/4/16

* Time: 18:32

*/

namespace app\admins\controller;

use think\Controller;

use Util\SysDb;

class Menu extends Base

{

public function index()

{

$pid = (int)input('get.pid');

$where['pid'] = $pid;

$data['lists'] = $this->db->table('admin_menus')->where($where)->order('ord asc')->lists();

//为了实现子菜单的功能,将pid带到后面去

$data['pid'] = $pid;

//处理子菜单

if($pid>0){

$parent = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();//拿到上级菜单

$data['backid'] = $parent['pid'];

}

return $this->fetch('',$data);

}

public function add()

{

$pid = (int)input('get.pid');

$mid = (int)input('get.mid');

//如果有mid,加载mid就可以了

//如果pid有值,加载当前菜单

$data['parent_menu'] = $this->db->table('admin_menus')->where(array('mid'=>$pid))->item();

$data['menu'] = $this->db->table('admin_menus')->where(array('mid'=>$mid))->item();

return $this->fetch('',$data);

}

//保存菜单

public function save()

{

$mid = (int)input('post.mid');

//接收上级菜单mid

$data['pid'] = (int)input('post.pid');

$data['title'] = trim(input('post.title'));

$data['controller'] = trim(input('post.controller'));

$data['method'] = trim(input('post.method'));

$data['ord'] = (int)input('post.ord');

$data['ishidden'] = (int)input('post.ishidden');

$data['status'] = (int)input('post.status');

if($data['title'] == ''){

exit(json_encode(array('code'=>1,'msg'=>'菜单名称不能为空')));

}

if($data['pid']>0 && $data['controller'] == ''){

exit(json_encode(array('code'=>1,'msg'=>'控制器名称不能为空')));

}

if($data['pid']>0 && $data['method'] == ''){

exit(json_encode(array('code'=>1,'msg'=>'方法名称不能为空')));

}

//如果有mid,应该是更新菜单;否则的话是插入菜单

if($mid){

$res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->update($data);

}else{

$res = $this->db->table('admin_menus')->insert($data);

}

if(!$res){

exit(json_encode(array('code'=>1,'msg'=>'保存失败')));

}

exit(json_encode(array('code'=>0,'msg'=>'保存成功')));

}

//删除菜单

public function delete(){

$mid = (int)input('post.mid');

$res = $this->db->table('admin_menus')->where(array('mid'=>$mid))->delete();

if(!$res){

exit(json_encode(array('code'=>1,'msg'=>'删除失败')));

}

exit(json_encode(array('code'=>0,'msg'=>'删除成功')));

}

}

批改老师:欧阳批改时间:2019-04-19 09:33:32

老师总结:完成的不错,后台cms管理学会后,你就可以去做项目了,继续加油。

php无限极菜单,无限极菜单的实现相关推荐

  1. php菜单无限极分类

    php菜单无限极分类 function getTree($data, $pId='0') {$tree = [];foreach ($data as $k => $v) {if ($v['pid ...

  2. 下拉菜单,汉堡菜单,Mega menu… 学习5种常见UI导航设计

    可访问的导航将引导用户浏览 UI 中的信息流,并帮助他们完成任务.提高用户体验. Web/移动转化率.同样,如果用户无法在网站或app找到方向,那么该网站/app对他们毫无用处 -- 糟糕的导航设计会 ...

  3. OpenCV中的对极几何和对极约束

    OpenCV中的对极几何和对极约束 1. 原理 参考 这篇博客将学习多视图几何的基础知识,如什么是对极.对极线.对极约束等. 1. 原理 当使用针孔相机拍摄图像时会丢失一个重要的信息,即图像的深度.或 ...

  4. 【Qt】QtCreator中使用ActionManager类管理标题栏(MunuBar)、菜单(Menu)和菜单中的项目(Action)

    1.简介 QtCreator中使用ActionManager类管理标题栏(MunuBar).菜单(Menu)和菜单中的项目(Action),下面以创建"New"动作为例,介绍Act ...

  5. 如何在IE右键菜单中添加菜单项(转)

    (来自:http://www.jaron.cn/chs_scripts/7/2003-11/20031125111738-101413.html) 如果使用过Netants的朋友可能都知道,NetAn ...

  6. 13、Java菜单条、菜单、菜单项

    13.Java菜单条.菜单.菜单项 一般用Java做界面时,都得牵涉到菜单条.菜单.菜单项的设计.菜单项放在菜单里,菜单放在菜单条里,且其字体均可设置. 13.1.菜单条(Menubar) Frame ...

  7. Android之选项菜单和上下文菜单解析

    选项菜单 创建选项菜单 Activity类的onCreateOptionMenu事件方法用来创建选项菜单,该方法定义如下: @Overridepublic boolean onCreateOption ...

  8. 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...

    {=================================================================     功    能:             创建 桌面.发送到 ...

  9. 如何动态添加菜单/菜单项、子菜单、右键菜单

    有关菜单的操作主要用到 CMenu 类,当然也可用相应 API 函数, CMenu 类只是 MFC 对 API 中操作菜单的函数的封装而已. 不过能用类就尽量用类,类的组织方式好呗,代码看着也舒服. ...

最新文章

  1. LeetCode简单题之截断句子
  2. 对象检测工具包mmdetection简介、安装及测试代码
  3. 虚拟化技术KVM的搭建
  4. Day9-Postfix
  5. android studio 顶部导航栏_5分钟学交互:手机交互组件归纳 导航篇
  6. SharePoint 自定义WebPart之间的连接
  7. OpenGL 对象的概述
  8. 轻松掌握开发必会的docker套路-yaml语法与docker compose.yml
  9. java runnable 异常_JAVA 线程中的异常捕获
  10. 叮叮叮~~~~网络面试题(一)来了☺
  11. android4.0 底部菜单,Android自定义控件系列(四)—底部菜单(下)
  12. 由线性空间V中的集合生成的子空间
  13. ADAS技术市场总结展望(2021年-2022年)
  14. 顶级论文创新点怎么找?中国高校首次获CVPR最佳学生论文奖有感
  15. Java操作Excel完成导入导出
  16. 计算机网络专业综合实践报告,计算机网络专业实习报告.doc
  17. 苹果耳机可以用在安卓手机上吗_苹果史上最良心配件,安卓机用了根本停不下来...
  18. 语言学句法分析树形图怎么画_科学网—《泥沙龙笔记:漫谈自动句法分析和树形图表达》 - 李维的博文...
  19. 网络变压器的线间电容(CWW)及网络变压器线圈分布电容(CD)
  20. 如何删除电脑里的android驱动程序,【教程】安卓手机系统自带程序卸载

热门文章

  1. rjdbc读取mysql_R通过RJDBC连接外部数据库 (转)
  2. 【NOI2019】弹跳【二维线段树】【dijkstra】
  3. P3834 【模板】可持久化线段树 2(整体二分做法)
  4. 等比数列三角形 (数论 + 黄金分割点)+ JOISC 2016 Day3 T3 「电报」(基环树 + 拓扑排序)
  5. 洛谷P3327:[SDOI2015]约数个数和(莫比乌斯反演)
  6. 8.11模拟:数据结构
  7. 状态压缩:枚举子集(最优组队)(ybtoj)(动态规划)
  8. P2657-[SCOI2009]windy数【数位dp,dfs】
  9. 【图论】【并查集】矩形(ssl 1222)
  10. codeforces 938D Buy a Ticket 有初值的Dijkstra、有趣的题目