《使用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.hqwc.cn/news/318811.html

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

相关文章

技术学习|CDA level I 描述性统计分析(常用的数据分布)

推断性统计分析方法的基础理论——常用的分布&#xff08;两点分布、二项分布、正态分布[含标准正态分布]、χ2分布、t分布、F分布。 随机试验&#xff1a;结果不确定的实验&#xff0c;例如&#xff0c;进行一次抛硬币实验&#xff0c;结果是不确定的。对于随机试验的结果&am…

EM算法公式详细推导

EM算法是什么&#xff1f; EM算法是一种迭代算法&#xff0c;用于含隐变量概率模型参数的极大似然估计&#xff0c;或极大后验概率估计。EM算法由两步组成&#xff1a;E步&#xff0c;求期望&#xff1b;M步&#xff1a;求极大。EM算法的优点是简单性和普适性。 符号说明&…

关于系统设计的一些思考

0.前言 当我们站在系统设计的起点&#xff0c;面对一个新的需求&#xff0c;我们该如何开始呢&#xff1f;这是许多处于系统分析与设计领域的新手常常思考的问题。有些人可能会误以为&#xff0c;只要掌握了诸如面向对象、统一建模语言、设计模式、微服务、Serverless、Servic…

Postman版IDEA插件!免费!

Postman是大家最常用的API调试工具&#xff0c;那么有没有一种方法可以不用手动写入接口到Postman&#xff0c;即可进行接口调试操作&#xff1f;今天给大家推荐一款IDEA插件&#xff1a;Apipost Helper&#xff0c;写完代码就可以调试接口并一键生成接口文档&#xff01;而且还…

CMU15-445-Spring-2023-Project #0 - C++ Primer

前置任务。 Task #1 - Copy-On-Write Trie Copy-on-write (COW) Trie 在进行修改时&#xff0c;不会立即复制整个数据结构。相反&#xff0c;它会在需要修改的节点被多个引用的时候才进行复制。当要对某个节点进行写操作&#xff08;添加子节点或者继续向下insert&#xff09…

花了一小时,拿python手搓了一个考研背单词软件

听说没有好用的电脑端背单词软件&#xff1f;只好麻烦一下&#xff0c;花了一小时&#xff0c;拿python手搓了一个考研背单词软件。 代码已经开源在我的github上&#xff0c;欢迎大家STAR&#xff01; 其中&#xff0c;数据是存放在sqlite中&#xff0c;形近词跳转是根据jaro …

OpenHarmony源码转换器—多线程特性转换

本文讨论了如何将多线程的 Java 代码转换为 OpenHarmony ArkTS 代码​ 一、简介 Java 内存共享模型 以下示例伪代码和示意图展示了如何使用内存共享模型解决生产者消费者问题。 生产者消费者与共享内存间交互示意图 为了避免不同生产者或消费者同时访问一块共享内存的容器时…

【小程序开发】解决 HBuilder X “本项目类型无法运行到小程序模拟器”

今天遇到一个奇怪的问题&#xff0c;从git导入的微信小程序项目准备运行到小程序模拟器时菜单没有展示出模拟器工具列表&#xff0c;而是展示了这么一个子菜单“本项目类型无法运行到小程序模拟器&#xff0c;点击看详情”。如下图&#xff1a; 点击是跳转到一个web链接。 我通…

【零基础入门TypeScript】判断条件和循环

目录 定环 无限循环 示例&#xff1a;while 与 do..while 中断语句 句法 流程图 例子 继续语句 句法 流程图 例子 输出 无限循环 语法&#xff1a;使用 for 循环的无限循环 示例&#xff1a;使用 for 循环的无限循环 语法&#xff1a;使用 while 循环进行无限循…

使用生成式AI查询大型BI表

在拥有大量表格形式数据的组织中&#xff0c;数据分析师的工作是通过提取、转换和围绕数据构建故事来理解这些数据。 分析师访问数据的主要工具是 SQL。 鉴于大型语言模型 (LLM) 令人印象深刻的功能&#xff0c;我们很自然地想知道人工智能是否可以帮助我们将信息需求转化为格式…

优雅地展示20w单细胞热图|非Doheatmap 超大数据集 细胞数太多

单细胞超大数据集的热图怎么画&#xff1f;昨天刚做完展示20万单细胞的热图要这么画吗&#xff1f; 今天就有人发消息问我为啥他画出来的热图有问题。 问题起源 昨天分享完 20万单细胞的热图要这么画吗&#xff1f;&#xff0c;就有人问为啥他的数据会出错。我们先来看下他的…

sql | sql 语句中的case when

通过case when 进行更细致的分类 ################################################## ####### 参考 ####### 如果没有添加case when 最终的sql 语句 就只是查询表中的name 而且添加 case when [age] > 18 then 1 else 0 end as [AgeType] 记就表示找表中的两个字段 一个是…