fastadmin多个表crud连表操作步骤
1、crud命令
php think crud -t xq_user_credential -u 1 -c credential -i voucher_type,nickname,user_id,voucher_url,status,time --force=true

2、修改控制器controller文件
<?phpnamespace app\admin\controller;use app\common\controller\Backend;/*** 凭证信息** @icon fa fa-circle-o*/
class Credential extends Backend
{/*** Credential模型对象* @var \app\admin\model\Credential*/protected $model = null;public function _initialize(){parent::_initialize();$this->model = new \app\admin\model\Credential;}/*** 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改*//*** 查看*/public function index(){//当前是否为关联查询$this->relationSearch = false;//设置过滤方法$this->request->filter(['strip_tags', 'trim']);if ($this->request->isAjax()) {//如果发送的来源是Selectpage,则转发到Selectpageif ($this->request->request('keyField')) {return $this->selectpage();}list($where, $sort, $order, $offset, $limit) = $this->buildparams();$where = 'a.voucher_url IS NOT NULL'. ' AND a.voucher_url <> ""'.' AND b.nickname <> ""'.' AND b.nickname IS NOT NULL';$list = $this->model->alias('a') // 给主表设置别名->join('xq_user_info b', 'a.user_id = b.user_id', 'left') // 内连接->where($where) // 添加查询条件// ->order($sort, $order) // 排序->paginate($limit); // 分页 foreach ($list as $row) {$row->visible(['id','voucher_type','nickname','user_id','voucher_url','status','time']);}// 获取 voucher_type 的值并显示异常或正常foreach ($list->items() as $item) {if ($item->voucher_type == 1) {$item->voucher_type="工作认证";} elseif ($item->voucher_type == 2) {$item->voucher_type="房产认证";}elseif ($item->voucher_type == 3) {$item->voucher_type="车辆信息";}elseif ($item->voucher_type == 4) {$item->voucher_type="单身承诺书";}elseif ($item->voucher_type == 5) {$item->voucher_type="诚信承诺书";}elseif ($item->voucher_type == 6) {$item->voucher_type="友好承诺书";}elseif ($item->voucher_type == 7) {$item->voucher_type="信息保密协议";}elseif ($item->voucher_type == 8) {$item->voucher_type="学历认证";}elseif ($item->voucher_type == 9) {$item->voucher_type="体检认证";}elseif ($item->voucher_type == 10) {$item->voucher_type="实名认证";}else {$item->voucher_type="其他类型";}if ($item->status == 1) {$item->status="已认证";}if ($item->status == 0) {$item->status="未认证";}}$result = array("total" => $list->total(), "rows" => $list->items());return json($result);}return $this->view->fetch();}}
其中where条件的写法
$where = 'a.voucher_url IS NOT NULL'. ' AND a.voucher_url <> ""'.' AND b.nickname <> ""'.' AND b.nickname IS NOT NULL';
表连接的写法
$list = $this->model->alias('a') // 给主表设置别名->join('xq_user_info b', 'a.user_id = b.user_id', 'left') // 内连接->where($where) // 添加查询条件// ->order($sort, $order) // 排序->paginate($limit); // 分页
特定字段做显示处理写法
// 获取 voucher_type 的值并显示异常或正常foreach ($list->items() as $item) {if ($item->voucher_type == 1) {$item->voucher_type="工作认证";} elseif ($item->voucher_type == 2) {$item->voucher_type="房产认证";}elseif ($item->voucher_type == 3) {$item->voucher_type="车辆信息";}elseif ($item->voucher_type == 4) {$item->voucher_type="单身承诺书";}elseif ($item->voucher_type == 5) {$item->voucher_type="诚信承诺书";}elseif ($item->voucher_type == 6) {$item->voucher_type="友好承诺书";}elseif ($item->voucher_type == 7) {$item->voucher_type="信息保密协议";}elseif ($item->voucher_type == 8) {$item->voucher_type="学历认证";}elseif ($item->voucher_type == 9) {$item->voucher_type="体检认证";}elseif ($item->voucher_type == 10) {$item->voucher_type="实名认证";}else {$item->voucher_type="其他类型";}if ($item->status == 1) {$item->status="已认证";}if ($item->status == 0) {$item->status="未认证";}}
页面显示js路径
页面中修改的地方

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {var Controller = {index: function () {// 初始化表格参数配置Table.api.init({extend: {index_url: 'credential/index' + location.search,add_url: 'credential/add',edit_url: 'credential/edit',del_url: 'credential/del',multi_url: 'credential/multi',import_url: 'credential/import',table: 'user_credential',}});var table = $("#table");// 初始化表格table.bootstrapTable({url: $.fn.bootstrapTable.defaults.extend.index_url,pk: 'id',sortName: 'id',columns: [[{checkbox: true},{field: 'voucher_type', title: __('Voucher_type'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},{field: 'nickname', title: __('Nickname'),operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},{field: 'user_id', title: __('User_id'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},{field: 'voucher_url', title: __('Voucher_url'), operate: 'LIKE', formatter: Table.api.formatter.url},{field: 'status', title: __('Status')},{field: 'time', title: __('Time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}]]});// 为表格绑定事件Table.api.bindevent(table);},add: function () {Controller.api.bindevent();},edit: function () {Controller.api.bindevent();},api: {bindevent: function () {Form.api.bindevent($("form[role=form]"));}}};return Controller;
});
其中
{field: 'nickname', title: __('Nickname'),operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
是新加的列
相关文章:
fastadmin多个表crud连表操作步骤
1、crud命令 php think crud -t xq_user_credential -u 1 -c credential -i voucher_type,nickname,user_id,voucher_url,status,time --forcetrue2、修改控制器controller文件 <?phpnamespace app\admin\controller;use app\common\controller\Backend;/*** 凭证信息…...
山西省网络建设与运维第十八届职业院校技能大赛(样题)
集团计划把部分业务由原有的 X86 架构服务器 上迁移到 ARM 架构服务器上,同时根据目前的部分业务需求进行了部分 调整和优化。 一、 X86 架构计算机安装与管理 1、PC1系统为 ubuntu-desktop-amd64 系统,登录用户为 xiao,密码为 Key-1122。在对…...
服务端高并发分布式结构进阶之路
序言 在技术求知的旅途中,鉴于多数读者缺乏在中大型系统实践中的亲身体验,难以从宏观角度把握某些概念,因此,本文特选取“电子商务应用”作为实例,详细阐述从百级至千万级并发场景下服务端架构的逐步演变历程。同时&am…...
分布式微服务项目,同一个controller不同方法间的转发导致cookie丢失,报错null pointer异常
源码: /***添加商品进入购物车*/ GetMapping("/addToCart") public String addToCart(RequestParam("num") Integer num, RequestParam("skuId") Long skuId, RedirectAttributes redirectAttributes) {System.out.println("nu…...
STM32 ADC --- 任意单通道采样
STM32 ADC — 单通道采样 文章目录 STM32 ADC --- 单通道采样cubeMX配置代码修改:应用 使用cubeMX生成HAL工程 需求:有多个通道需要进行ADC采样,实现每次采样只采样一个通道,且可以随时采样不同通道的功能。 cubeMX配置 这里我们…...
vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-
1.前提: VScode中的git组件执行任何合并动作的时候需要提交远程合并的commit信息,然后编辑器自动打开的是nano文本编辑器 2.nano编辑器说明: 1.保存文件:按 Ctrl O,然后按 Enter 来保存文件。 2.退出编辑器…...
蓝桥杯每日真题 - 第7天
题目:(爬山) 题目描述(X届 C&C B组X题) 解题思路: 前缀和构造:为了高效地计算子数组的和,我们可以先构造前缀和数组 a,其中 a[i] 表示从第 1 个元素到第 i 个元素的…...
【Git】Git Clone 指定自定义文件夹名称:详尽指南
目录 引言一、git clone 基本语法二、默认行为:没有指定文件夹名称时三、如何指定自定义文件夹名称四、高级使用技巧:动态文件夹名称4.1 基于日期命名文件夹4.2 基于版本标签(Tag)动态命名文件夹4.1 基于日期命名文件夹4.2 基于版…...
终端快捷键学习笔记
以下是优化润色后的内容: 终端快捷键学习笔记 前言 终端(Terminal)是开发者、系统管理员以及技术人员常用的重要工具,它为我们提供了直接与操作系统交互的方式。不同操作系统中的终端使用体验存在差异,尤其在 Linux、…...
Go语言24小时极速学习教程(四)MySQL数据库的增删改查
通过前几篇想必你已经知道该如何使用Go语言写一些简单的程序了,那么从这一篇开始,我们开始探究如何用go语言能够写真正的企业级应用。第一步我们实现先能让程序对数据库进行增删改查,这里以MySQL为例。 1. 导入必要的包 首先需要导入databa…...
04 - Clickhouse-21.7.3.14-2单机版安装
目录 一、准备工作 1、确定防火墙处于关闭状态 2、CentOS 取消打开文件数限制 3、安装依赖 4、CentOS取消SELINUX 二、单机安装 2.1、下载安装 2.2、安装这4个rpm包 2.3、修改配置文件 2.4、启动服务 2.5、关闭开机自启 2.6、使用Client连接server 一、准备工作 1…...
多项式回归
以多元线性回归和特征工程的思想来想出一种称为多项式回归的新算法,它可以让您拟合曲线,非线性函数,您的数据。假设你有一个住房看起来像这样的数据集,其中特征x是以平方英尺为单位的大小。它看起来不像一条直线非常适合这个数据集…...
vscode报错:Connecting with SSH time-out.
当我们在vscode上远程连接(Remote_SSH)Linux时,如果直接点关闭vscode,下次远程登陆后,就会弹出以下界面, 点击重新加载window就会弹出以下报错: 这是因为我们没有正常关闭remote-ssh, 导致linux上有多个vsc…...
python可视化将多张图整合到一起(画布)
这周有点事忙着,没时间重温刚结束的Mathurcup数学建模,这两天也是再看了下,论文还是赶紧挺烂的,但比国赛又有进步(说起国赛又不得不抱怨了,基本其余省份都发了,但江西......哎)。哎&…...
C函数如何返回参数lua使用
返回基本数据类型 数字类型(整数和浮点数) 在C函数中,可以使用lua_pushnumber函数将一个数字(整数或浮点数)压入Lua栈。当C函数返回后,Lua会从栈顶获取这个数字作为返回值。例如,以下是一个简单…...
pytest在conftest.py中实现用例执行失败进行截图并附到allure测试报告
conftest.py文件简介 conftest.py文件用于定义共享设置、夹具和钩子函数。 可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture; conftest.py与运行的用例要在同一个pakage下…...
编程之路,从0开始:数据在内存中的存储
目录 1、整数在内存中的存储 (1)大小端 (2)数据存储读取练习 2、浮点数在内存中的存储 Hello大家好,很高兴我们又见面啦!给生活添点Passion,开始今天的编程之路! 1、整数在内存中的存储 之…...
二叉树+树的OJ题讲解
求第K层节点个数 思路:走到K1就不走了,一次传回得到的值 #include<stdio.h> #include<stdlib.h> //树的定义 typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode;//手…...
信捷PLC转以太网连接电脑方法
信捷XC/XD/XL等系列PLC如何上下载程序?可以选择用捷米特JM-ETH-XJ模块轻松搞定,并不需要编程,即插即用,具体看见以下介绍: 产品介绍 捷米特JM-ETH-XJ是专门为信捷PLC转以太网通讯面设计,可实现工厂设备信息化需求,对…...
释放 PWA 的力量:2024 年的现代Web应用|React + TypeScript 示例
在2024年的Web开发领域,PWA(Progressive Web Apps)已经成为一个不可忽视的技术趋势。这篇文章将探讨PWA的最新发展,并通过实例展示如何构建一个现代PWA应用。 PWA的本质与优势 PWA本质上是一种将Web应用提升到接近原生应用体验的技…...
OAuth 2.0 and OIDC 三大安全机制对比:State vs Nonce vs PKCE
一、问题背景 OAuth 2.0 和 OpenID Connect 的授权流程依赖浏览器重定向,这天然暴露了多种攻击面: 攻击类型描述CSRF攻击者诱导用户的浏览器携带恶意授权码完成绑定Token 重放窃取的 id_token 被重复提交给客户端授权码劫持恶意应用在同一设备上拦截授…...
DaVinci Developer与Configurator Pro联调指南:如何高效设计SWC并集成到ECU工程
DaVinci Developer与Configurator Pro联调实战:从SWC设计到ECU集成的全流程解析 在汽车电子控制单元(ECU)开发领域,工具链的协同效率直接决定了项目进度和质量。作为Vector公司AUTOSAR工具链的核心组件,DaVinci Develo…...
【技术解析】基于主成分分析与神经网络的航空安全风险建模:从QAR数据预处理到实时预警仿真
1. 航空安全风险建模的技术背景 每次坐飞机时,你可能都好奇过:机长是如何确保飞行安全的?其实背后有一整套数据驱动的安全体系在支撑。QAR(快速存取记录器)就像飞机的"黑匣子",记录了上百项飞行参…...
Excel MCP Server终极指南:让AI成为你的Excel自动化助手
Excel MCP Server终极指南:让AI成为你的Excel自动化助手 【免费下载链接】excel-mcp-server A Model Context Protocol server for Excel file manipulation 项目地址: https://gitcode.com/gh_mirrors/ex/excel-mcp-server 你是否厌倦了重复的Excel操作&…...
完整实战指南:使用N_m3u8DL-RE高效解决流媒体下载难题
完整实战指南:使用N_m3u8DL-RE高效解决流媒体下载难题 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …...
终极指南:如何在Mac上免费快速导出微信聊天记录
终极指南:如何在Mac上免费快速导出微信聊天记录 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而焦虑?或需要查找…...
平衡车PID积分饱和问题
你发现了PID最致命的坑! 你说的完全正确:积分(Ki)是累加的,会无限叠加,直接让PWM爆掉、车猛冲、失控! 这就是积分饱和 —— 99%初学者死在这里。 我现在彻底讲透积分为什么炸、怎么修复、平衡车…...
告别网络依赖:CircuitJS1桌面版带你体验离线电路仿真的自由
告别网络依赖:CircuitJS1桌面版带你体验离线电路仿真的自由 【免费下载链接】circuitjs1 Standalone (offline) version of the Circuit Simulator with small modifications based on modified NW.js. 项目地址: https://gitcode.com/gh_mirrors/circ/circuitjs1…...
XHS-Downloader:小红书内容采集与管理的全栈解决方案
XHS-Downloader:小红书内容采集与管理的全栈解决方案 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接&…...
品牌声音技能化:从模糊概念到可执行AI内容策略
1. 项目概述:品牌声音的“技能化”构建最近在和一些做品牌营销、内容运营的朋友聊天,发现一个挺普遍的现象:大家手里都有一堆品牌手册、VI规范,但一到具体执行,比如写一篇公众号推文、拍一条短视频,或者回复…...
