《使用ThinkPHP6开发项目》 - ThinkPHP6创建菜单模块

#CSDN 年度征文|回顾 2023,赢专属铭牌等定制奖品#

一、创建菜单模块

1、创建系统菜单表

CREATE TABLE `menu` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '菜单ID',`menu_name` varchar(32) NOT NULL DEFAULT '' COMMENT '菜单名称',`path` varchar(255) NOT NULL DEFAULT '' COMMENT '路径',`redirect` varchar(255) NOT NULL COMMENT '跳转地址',`components` varchar(255) NOT NULL DEFAULT '' COMMENT '组件',`hidden` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '隐藏',`create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`pid` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '父级菜单ID',`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1.有效 0.无效',`is_del` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否删除',PRIMARY KEY (`id`) USING BTREE,KEY `role_name` (`menu_name`) USING BTREE,KEY `status` (`status`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统菜单表';

2、使用命令创建菜单控制器

php think make:controller admin@Menu --plain

2、在Menu.php控制中创建菜单模块的方法

<?php
declare (strict_types = 1);namespace app\admin\controller;class Menu
{// 菜单列表public function list(){echo '菜单列表';}// 新增菜单public function create(){echo '新增菜单';}// 编辑菜单public function edit(){echo '编辑菜单';}// 删除菜单public function del(){echo '删除菜单';}// 启用/禁用菜单public function status(){echo '启用/禁用菜单';}
}

3、使用命令创建菜单模型

php think make:model admin@Menu

4、使用模型获取菜单数据

// 数据分页
public function data_page(array $where = [], array $pageData = [], array $sort = [], string $fields = '*'){if(empty($where)) $where = querymap();$result = $this->where($where)->field($fields)->order($sort)->paginate($pageData);if(is_object($result)) $result = $result->toArray();return $result;
}// 数据列表
public function data_list(array $where = [], array $sort = [], string $fields = '*', $limit = 0){empty($where) and $where = querymap();if(empty($limit)){$result = $this->where($where)->field($fields)->order($sort)->select();}else{$result = $this->where($where)->field($fields)->limit($limit)->order($sort)->select();}if(is_object($result)) $result = $result->toArray();return $result;
}// 数据值总和
public function data_sum(array $where = [], string $field, array $sort = []){$sum = $this->where($where)->order($sort)->sum($field);$result['sum'] = $sum;return $result;
}// 数据量
public function data_count(array $where = [], array $sort = []){$count = $this->where($where)->order($sort)->count();$result['count'] = $count;return $result;
}//新增数据
public function data_create(array $data)
{if(!empty($data[0]) && is_array($data[0])){$result = $this->saveAll($data);if(is_object($result)) $result = $result->toArray();}else{$data['create_time'] = time();$this->save($data);$data['id'] = $this->id;$result = $data;}return $result;
}//更新数据
public function data_update(array $data = [], array $where = [])
{if(!empty($data[0]) && is_array($data[0])){$ids = array_column($data, 'id');$idlength = count($ids); $datalength = count($data);if($idlength != $datalength) return arrayData(500, '缺少更新条件');$result = $this->saveAll($data);}else{$result = $this->update($data, $where);}if(is_object($result)) $result = $result->toArray();if(empty($result)) $result = [];return $result;
}//查看数据
public function data_view(array $where, string $field = "*", array $sort = [], array $hidden = [])
{$result = $this->where($where)->field($field)->order($sort)->hidden($hidden)->find();if(is_object($result)) $result = $result->toArray();if(empty($result)) {$result = [];}return $result;
}//查看字段
public function data_value(array $where, string $field)
{$result = $this->where($where)->value($field);// if(is_object($result)) $result = $result->toArray();if(empty($result)) {$result = '';}return $result;
}// 删除数据
public function data_delete(array $where, array $sort = [])
{$result = $this->where($where)->order($sort)->delete();
}// 分组数据
public function data_group(array $where, string $group = '', string $field = '*', array $sort = [])
{$result = $this->where($where)->field($field)->group($group)->order($sort)->select();if(is_object($result)) $result = $result->toArray();if(is_null($result)) $result = [];return $result;
}

5、使用命令创建Service文件

php think make:service admin@Menu

6、创建菜单方法处理菜单业务逻辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/594133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KBDPL.DLL文件丢失,软件游戏无法启动,修复方法

不少小伙伴&#xff0c;求助说遇到Windows弹窗提示“KBDPL.DLL文件丢失&#xff0c;应用无法启动的问题”&#xff0c;不知道应该怎么修复&#xff1f; 首先&#xff0c;先来了解“KBDPL.DLL文件”是什么&#xff1f; kbdpl.dll是Windows操作系统的一部分&#xff0c;是一个动…

三菱plc的点动控制循环(小灯闪烁,单控气缸循环)

以为前一段时间小编做了一个气缸定时循环的程序&#xff0c;根据程序有不足之处&#xff0c;所以小编写下这篇文章&#xff0c;将网络上的plc小灯控制进行总结&#xff01;如果对你有帮助&#xff0c;不要忘了点赞收藏&#xff01;如果有更加好的梯形图&#xff0c;欢迎评论&am…

八怪:再谈 MySQL 8 这两个精准的时间戳

MySQL 8.0 的 binlog 中多了 immediate_commit_timestamp 和 original_commit_timestamp 的信息&#xff0c;网上也有很多文章进行解释&#xff0c;最近也刚好遇到相关问题&#xff0c;刚好稍微学习一下。 作者&#xff1a;高鹏&#xff08;八怪&#xff09;&#xff0c;《MySQ…

教育机构培训系统小程序功能清单

制作一款适合自己的教育机构培训系统小程序&#xff0c;可以为学员提供更便捷的学习体验&#xff0c;同时提高机构的教学效率。今天将详细介绍如何使用乔拓云平台制作教育机构培训系统小程序。 在浏览器搜索乔拓云&#xff0c;登录到后台&#xff0c;选择教育系统并点击进入。在…

基于SSM(非maven)的教室预约管理系统——有报告(Javaweb)

项目简介 本项目为基于SSM&#xff08;非maven&#xff09;的教室预约管理系统&#xff0c;本项目主要分为二种角色&#xff1a;用户&#xff0c;管理员 管理员拥有功能&#xff1a;教室信息管理、预约审核管理、预约记录查询、用户注册管理、修改个人信息、退出登录等 用户…

2024年阿里云优惠券领取及使用教程

阿里云作为国内领先的云计算服务提供商&#xff0c;一直致力于为客户提供优质、高效的服务。为了更好地回馈客户&#xff0c;阿里云经常会推出各种优惠活动&#xff0c;其中就包括阿里云优惠券。本文将详细介绍如何领取及使用阿里云优惠券。 一、阿里云优惠券介绍 阿里云优惠券…

SpringBoot的基础配置

问题导入 入门案例中没有引入spring-webmvc等依赖包&#xff0c;没有配置Tomcat服务器&#xff0c;为什么能正常启动&#xff1f;我们没有配置端口号&#xff0c;为什么端口是8080&#xff1f; 起步依赖 starter SpringBoot中常见项目名称&#xff0c;定义了当前项目使用的所…

CEC2017(Python):五种算法(DBO、HHO、RFO、SSA、PSO)求解CEC2017

一、5种算法简介 1、蜣螂优化算法DBO 2、哈里斯鹰优化算法HHO 3、红狐优化算法RFO 4、麻雀搜索算法SSA 5、粒子群优化算法PSO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

阿里云系统盘测评ESSD、SSD和高效云盘IOPS、吞吐量性能参数表

阿里云服务器系统盘或数据盘支持多种云盘类型&#xff0c;如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等&#xff0c;阿里云百科aliyunbaike.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延等性…

炫云常见咨询问题TOP榜(云渲染软件专题)

在上一期&#xff0c;小编带大家盘点了年度炫云云渲染使用相关常见咨询问题TOP20。这份榜单不仅是对过去一年用户关注焦点的回顾&#xff0c;更是一个汇总了各类问题解答的宝典。无论您是初次使用还是老用户&#xff0c;都能帮助您更快速地解决疑问&#xff0c;提升使用炫云各类…

Harmony 开始支持 Flutter ,聊聊 Harmony 和 Flutter 之间的因果

原创作者&#xff1a;恋猫de小郭 相信大家都已经听说过&#xff0c;明年的 Harmony Next 版本将正式剥离 AOSP 支持 &#xff0c;基于这个话题我已经做过一期问题汇总 &#xff0c;当时在 现有 App 如何兼容 Harmony Next 问题上提到过&#xff1a; 华为内部也主导适配目前的主…

用js让用户输入一个数累加和

需求&#xff1a;用户输入一个数&#xff0c; 计算 1 到这个数的和。 比如 用户输入的是 5&#xff0c; 则计算 1~5 之间的累加和 并且输出到控制台 <body><script>let numprompt(请输入一个数)let sum0for(let i1;i<num;i){sumi}console.log(sum)</script…

进程终结之道:kill与pskill的神奇战斗

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 进程终结之道&#xff1a;kill与pskill的神奇战斗 前言基本用法kill命令&#xff1a;基础语法&#xff1a;选项&#xff1a;示例&#xff1a; pskill命令&#xff1a;基础语法&#xff1a;选项&#x…

【算法与数据结构】763、LeetCode划分字母区间

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题要求为&#xff1a; 1.尽可能多的划分片段2.字母只能出现在一个片段中3.片段连接起来仍然是s&…

pytorch04:网络模型创建

目录 一、模型创建过程1.1 以LeNet网络为例1.2 LeNet结构1.3 nn.Module 二、网络层容器(Containers)2.1 nn.Sequential2.1.1 常规方法实现2.1.2 OrderedDict方法实现 2.2 nn.ModuleList2.3 nn.ModuleDict2.4 三种容器构建总结 三、AlexNet网络构建 一、模型创建过程 1.1 以LeNe…

如何使用内网穿透工具实现远程SSH访问Deepin系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统&#xff0c;专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

leetcode递归算法题总结

递归本质是找重复的子问题 本章目录 1.汉诺塔2.合并两个有序链表3.反转链表4.两两交换链表中的节点5.Pow(x,n) 1.汉诺塔 汉诺塔 //面试写法 class Solution { public:void hanota(vector<int>& a, vector<int>& b, vector<int>& c) {dfs(a,b…

踩坑记录-安装nuxt3报错:Error: Failed to download template from registry: fetch failed;

报错复现 安装nuxt3报错&#xff1a;Error: Failed to download template from registry: fetch failednpx nuxi init nuxt-demo 初始化nuxt 项目 报错 Error: Failed to download template from registry: fetch faile 解决方法 配置hosts Mac电脑&#xff1a;/etc/hostswin电…

众和策略:中一签最多赚超2万元!又有新股大涨

A股商场整体低位轰动 今天上午A股商场整体低位轰动。 板块和赛道方面&#xff0c;煤炭板块再度领涨&#xff0c;板块涨幅逾越1%&#xff0c;云煤动力涨停。 公用事业、钢铁、传媒、石油石化等板块涨幅居前。电子、计算机、通讯等板块跌幅居前。 概念板块方面&#xff0c;化…

深入探索小红书笔记详情API:解锁内容创新的无尽潜力

一、引言 在当今信息爆炸的时代&#xff0c;内容创新已经成为品牌和个人脱颖而出的关键。小红书&#xff0c;作为全球最大的消费类口碑库之一&#xff0c;每天产生大量的用户生成内容。而小红书笔记详情API&#xff0c;作为一个强大的工具&#xff0c;能够为内容创作者提供深入…