PHP项目学习笔记-萤火商城-增加一个模块(表涉及到的操作和文件)

背景
是在store的后台添加一个页面,显示的如满意度调查的页面

  1. 在router.config.js里面配置一个新的菜单
    路径:yoshop2.0-store\src\config\router.config.js
    代码如下,很简单,定义了这菜单点击的时候进入的页面,和下面的子菜单
{path: '/satisfaction',name: 'satisfaction',component: RouteView,meta: { title: '满意度管理', keepAlive: true, icon: Icons.mpWeixin, iconStyle: { fontSize: '17.2px', color: '#36b313' }, permission: ['/satisfaction'] },//子菜单children: [{//这里定义了后台方法path: '/satisfaction/list',//这里定义了前端页面的路径component: () => import(/* webpackChunkName: "statistics" */ '@/views/satisfaction/index'),meta: { title: '满意度列表', keepAlive: false, permission: ['/satisfaction/list'] },}]
},
  1. 增加前后台文件
    2.1 增加前端文件页面
    创建目录:yoshop2.0-store\src\views\satisfaction
    创建文件:yoshop2.0-store\src\views\satisfaction\index.vue
    内容代码:
<template><a-card :bordered="false"><div class="card-title">{{ $route.meta.title }}</div><div class="table-operator"><!-- 搜索板块 --><a-row class="row-item-search"><a-form class="search-form" :form="searchForm" layout="inline" @submit="handleSearch"><a-form-item label="手机号码"><a-input v-decorator="['satisfaction_userphone']" placeholder="请输入手机号码" /></a-form-item><a-form-item class="search-btn"><a-button type="primary" icon="search" html-type="submit">搜索</a-button></a-form-item></a-form></a-row></div><!-- 表板块 --><s-tableref="table"rowKey="satisfaction_id":loading="isLoading":columns="columns":data="loadData":pageSize="15":scroll="{ x: 1450 }"></s-table></a-card>
</template><script>
import { ContentHeader, STable } from '@/components'
import * as SatisfactionApi from '@/api/satisfaction/index'
// 表格表头
const columns = [{title: 'ID',width: '50px',dataIndex: 'satisfaction_id'},{title: '评价人',dataIndex: 'satisfaction_user',width: '100px',scopedSlots: { customRender: 'satisfaction_user' }},{title: '评价人手机',dataIndex: 'satisfaction_userphone',width: '100px',scopedSlots: { customRender: 'satisfaction_userphone' }},{title: '操作',dataIndex: 'action',width: '150px',fixed: 'right',scopedSlots: { customRender: 'action' }}
]export default {name: 'Index',components: {ContentHeader,STable},data () {return {expand: false,// 表头columns,// 正在加载isLoading: false,queryParam: {},searchForm: this.$form.createForm(this),loadData: param => {return SatisfactionApi.list({ ...param, ...this.queryParam }).then(response => {return response.data.list})}}},methods:{// 确认搜索handleSearch (e) {e.preventDefault()this.searchForm.validateFields((error, values) => {if (!error) {this.queryParam = { ...this.queryParam, ...values }this.handleRefresh(true)}})},/*** 刷新列表* @param Boolean bool 强制刷新到第一页*/handleRefresh (bool = false) {this.$refs.table.refresh(bool)}}
}
</script>

创建对应的目录:yoshop2.0-store\src\api\satisfaction
创建对应的文件:yoshop2.0-store\src\api\satisfaction\index.js
内容代码:

import { axios } from '@/utils/request'/*** api接口列表* /satisfaction/list表示:后台对应的文件目录是app\store\controller下的satisfaction.php,对应的list方法* /satisfaction.satisfaction/list表示:后台对应的文件目录是app\store\controller\satisfaction\下的satisfaction.php,对应的list方法*/
const api = {list: '/satisfaction/list',
}/*** 获取满意度列表*/
export function list (params) {return axios({url: api.list,method: 'get',params})
}

2.2 增加后台PHP文件
增加表对应的基模型:yoshop2.0\app\common\model\Satisfaction.php

<?phpdeclare (strict_types=1);
namespace app\common\model;
use cores\BaseModel;
class Satisfaction extends BaseModel
{// 定义表名protected $name = 'store_satisfaction';// 定义主键protected $pk = 'satisfaction_id';
}?>

增加表对应的具体模型:yoshop2.0\app\store\model\Satisfaction.php

<?phpdeclare (strict_types=1);
namespace app\store\model;
use cores\exception\BaseException;
use app\common\model\Satisfaction as SatisfactionModel;class Satisfaction extends SatisfactionModel
{/*** 隐藏字段,如是查询结果的话,会将设定的字段隐藏掉,这里我希望显示这个两个字段,因此我注释了* @var array*/protected $hidden = ['store_id',
//         'create_time'];public function getList(array $param = []){// 查询参数$params = $this->setQueryDefaultValue($param, ['satisfaction_userphone' => '','store_id' => 10001]);// 检索查询条件$filter = [];!empty($params['satisfaction_userphone']) && $filter[] = ['satisfaction_userphone', 'like', "%{$params['satisfaction_userphone']}%"];// 获取列表数据return $this->where($filter)->order(['create_time' => 'desc'])->paginate(50);}
}
?>

增加controller页面调用的文件:

<?php
declare (strict_types=1);namespace app\store\controller;use app\store\controller\Controller;
use app\store\model\Satisfaction as SatisfactionModel;/*** 满意度控制器* Class article* @package app\store\controller\satisfaction*/
class Satisfaction extends Controller
{public function list(){$model = new SatisfactionModel;$list = $model->getList($this->request->param());return $this->renderSuccess(compact('list'));}
}
?>
  1. 添加如上文件后就能在后台看到对应菜单好和自动读取数据库表的内容管理
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

springboot 2.1.0.RELEASE 项目加入swagger接口文档

Release v2.1.0.RELEASE spring-projects/spring-boot GitHub springboot 2.1.0.RELEASE发行日期是2018年10月30日&#xff08;Oct 30, 2018&#xff09; 不要使用过高的swagger版本&#xff0c;如SpringFox Boot Starter 3.0.0&#xff0c;否则报错&#xff1a; spring-…

HDFS入门--学习笔记

1&#xff0c;大数据介绍 定义 数据指的是&#xff1a;一种可以被鉴别的、对客观事件进行记录的符号&#xff0c;除了可以是最简单的 数字外&#xff0c;也可以是各类符号、文字、图像、声音等。 通俗地说&#xff0c;数据就是对人类的行为及发生事件的一种记录。 存在的价值…

HTML5学习系列之标题和正文、描述性信息

HTML5学习系列之标题和正文、描述性信息 标题和正文标题段落 描述性信息强调注解备选上下标术语代码预定义格式缩写词编辑提示引用引述换行显示修饰非文本注解 总结 标题和正文 标题 按语义轻重排列&#xff1a;h1\h2\h3\h4\h5\h6 <h1>诗词介绍</h1> <h2>…

2023亚太杯数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

zookeeper的安装部署

目录 简介 Zookeeper架构设计及原理 1.Zookeeper定义 2.Zookeeper的特点 3.Zookeeper的基本架构 4.Zookeeper的工作原理 5.Zookeeper的数据模型 &#xff08;1&#xff09;临时节点 &#xff08;2&#xff09;顺序节点 &#xff08;3&#xff09;观察机制 Zookeeper集…

DevEco studio配置自己的虚拟环境

开始使用DevEco studio时使用的时华为预置的手机&#xff0c;通过网络访问&#xff0c;但是近期发现有两点问题 网络不稳定的时候机器很卡现在资源很难使用 DevEco提供了自定义环境的搭建&#xff0c;从而解决上面的问题 这里有几点问题需要硬盘至少10G空闲&#xff08;应该问题…

优秀智慧园区案例 - 中建科技产业园(中建·光谷之星),万字长文解析先进智慧园区建设方案经验

一、项目背景 中建科技产业园&#xff08;中建光谷之星&#xff09;&#xff0c;位于武汉光谷中心城、中国&#xff08;湖北&#xff09;自贸试验区武汉片区双核心区&#xff0c;光谷发展主轴高新大道北侧&#xff0c;建筑面积108万平米&#xff0c;是中建三局“中建之星”和“…

神经网络常见评价指标AUROC(AUC-ROC)、AUPR(AUC-PR)

神经网络的性能可以通过多个评价指标进行衡量&#xff0c;具体选择哪些指标取决于任务的性质。以下是神经网络中常见的评价指标&#xff1a; 准确性&#xff08;Accuracy&#xff09;&#xff1a; 准确性是最常见的分类任务评价指标&#xff0c;表示模型正确预测的样本数占总样…

AR贴纸特效SDK,无缝贴合的虚拟体验

增强现实&#xff08;AR&#xff09;技术已经成为了企业和个人开发者的新宠。它通过将虚拟元素与现实世界相结合&#xff0c;为用户提供了一种全新的交互体验。然而&#xff0c;如何将AR贴纸完美贴合在人脸的面部&#xff0c;同时支持多张人脸的检测和标点及特效添加&#xff0…

Web服务Openlab的搭建

Web服务Openlab的搭建 网站需求&#xff1a; 基于域名 www.openlab.com 可以访问网站内容为 welcome to openlab!!! 给该公司创建三个子界面分别显示学生信息&#xff0c;教学资料和缴费网站 基于 www.openlab.com/student 网站访问学生信息&#xff0c; 基于 www.openlab.…

墨西哥专线一次最多发几条柜?

墨西哥专线一次最多发几条柜这个问题涉及到海运业务中的一些复杂因素。墨西哥是一个重要的贸易国家&#xff0c;其与美国和加拿大之间的贸易往来非常频繁&#xff0c;因此海运业务也非常活跃。在墨西哥专线上&#xff0c;一次最多发几条柜通常取决于以下几个因素&#xff1a; 1…