TP6框架--EasyAdmin学习笔记:实现数据库增删查改

摘要:
这是我学习EasyAdmin的第三章。在本章中,我将与您分享如何添加、删除、检查和更改上一章的链接。单击此处转到上一章。我们说,根据官方案例,我定义了一条路线goodsone,并创建了相应的数据库。我们可以看到该视图复制了goodsone文件夹中的几个文件,包括索引HTML。因为easyadmin的前端使用layui,所以我们可以看到我们看到的所有内容都是这样的

这是我写的学习EasyAdmin的第三章,这一章我给大家分享下如何进行数据库的增删查改

上一章链接:点击这里前往

上一章我们说到,我仿照官方案例,定义了一条路由goodsone和创建了对应数据库,我们可以看到view复制goodsone的文件夹中又这么几个文件

TP6框架--EasyAdmin学习笔记:实现数据库增删查改第1张

这些文件中,index.html是我们看到的列表页面,因为easyadmin前端采用的是layui,所有我们看到的内容是这样的

TP6框架--EasyAdmin学习笔记:实现数据库增删查改第2张

 我们可以看到很明显的layui痕迹,这里中增删改查已经又框架默认方法,路由的格式如上图设置即可

页面效果如下:

TP6框架--EasyAdmin学习笔记:实现数据库增删查改第3张

 这里没有layui知识的小伙伴会有一个疑问,页面中的数据和按钮是怎么出来的,上章定义路由的过程中,每一个路由都需要一个对应的js文件,这里的表单和按钮就是在哪里设置的,内容如下:

define(["jquery", "easy-admin"], function ($, ea) {
 
    var init = {
        table_elem: '#currentTable',
        table_render_id: 'currentTableRenderId',
        index_url: 'mall.goodsone/index',
        add_url: 'mall.goodsone/add',
        edit_url: 'mall.goodsone/edit',
        delete_url: 'mall.goodsone/delete',
        export_url: 'mall.goodsone/export',
        modify_url: 'mall.goodsone/modify',
        stock_url: 'mall.goodsone/stock',
    };
 
    var Controller = {
 
        index: function () {
            ea.table.render({
                init: init,
                toolbar: ['refresh',
                    [{
                        text: '添加',
                        url: init.add_url,
                        method: 'open',
                        auth: 'add',
                        class: 'layui-btn layui-btn-normal layui-btn-sm',
                        icon: 'fa fa-plus ',
                        extend: 'data-full="true"',
                    }],
                    'delete', 'export'],
                cols: [[
                    {type: "checkbox"},
                    {field: 'id',  80, title: 'ID'},
                    {field: 'sort',  80, title: '排序', edit: 'text'},
                    {field: 'cate.title', minWidth: 80, title: '商品分类'},
                    {field: 'title', minWidth: 80, title: '商品名称'},
                    {field: 'logo', minWidth: 80, title: '分类图片', search: false, templet: ea.table.image},
                    {field: 'market_price',  100, title: '市场价', templet: ea.table.price},
                    {field: 'discount_price',  100, title: '折扣价', templet: ea.table.price},
                    {field: 'total_stock',  100, title: '库存统计'},
                    {field: 'stock',  100, title: '剩余库存'},
                    {field: 'virtual_sales',  100, title: '虚拟销量'},
                    {field: 'sales',  80, title: '销量'},
                    {field: 'status', title: '状态',  85, search: 'select',selectList: {0: '禁用', 1: '启用'}, templet: ea.table.switch},
                    {field: 'create_time', minWidth: 80, title: '创建时间'},
                    {
                         250,
                        title: '操作',
                        templet: ea.table.tool,
                        operat: [
                            [{
                                text: '编辑',
                                url: init.edit_url,
                                method: 'open',
                                auth: 'edit',
                                class: 'layui-btn layui-btn-xs layui-btn-success',
                                extend: 'data-full="true"',
                            },
                            // {
                            //     text: '入库',
                            //     url: init.stock_url,
                            //     method: 'open',
                            //     auth: 'stock',
                            //     class: 'layui-btn layui-btn-xs layui-btn-normal',
                            // }
                            ],
                            'delete']
                    }
                ]],
            });
 
            ea.listen();
        },
        add: function () {
            ea.listen();
        },
        edit: function () {
            ea.listen();
        },
        stock: function () {
            ea.listen();
        },
    };
    return Controller;
});

上方的代码大家可以清晰的看到各个增删查改的路由,直接照抄即可,layui大佬可以直接根据项目来修改,而对应的路由代码是放在controller层,代码如下大家而可以参考:

<?php
 
 
namespace appadmincontrollermall;
 
 
use appadminmodelMallGoodsOne;
use appadmin	raitsCurd;
use appcommoncontrollerAdminController;
use EasyAdminannotationControllerAnnotation;
use EasyAdminannotationNodeAnotation;
use thinkFacadeDb;
use thinkApp;
 
/**
 * Class Goods
 * @package appadmincontrollermall
 * @ControllerAnnotation(title="商城商品管理")
 */
class GoodsOne extends AdminController
{
 
    use Curd;
 
    protected $relationSearch = true;
 
    public function __construct(App $app)
    {
        parent::__construct($app);
        $this->model = new MallGoodsOne();
    }
 
    /**
     * @NodeAnotation(title="列表")
     */
    public function index()
    {
        //var_dump($this->request->isAjax());exit();
        if ($this->request->isAjax()) {
            if (input('selectFields')) {
                return $this->selectList();
            }
            list($page, $limit, $where) = $this->buildTableParames();
            $count = $this->model
                ->withJoin('cate', 'LEFT')
                ->where($where)
                ->count();
            $list = $this->model
                ->withJoin('cate', 'LEFT')
                ->where($where)
                ->page($page, $limit)
                ->order($this->sort)
                ->select();
            $data = [
                'code'  => 0,
                'msg'   => '',
                'count' => $count,
                'data'  => $list,
            ];
            return json($data);
        }
        return $this->fetch();
    }
}

如果本文对你有所帮助,麻烦你点个赞,下一章讲下如何在EasyAdmin中用php来实现excel导入表中。

免责声明:文章转载自《TP6框架--EasyAdmin学习笔记:实现数据库增删查改》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue自学小demo----前端黄聪:wordpress前台自定义用户,调用wp_editor上传附件提示【抱歉,出于安全的考虑,不支持此文件类型】错误。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于数据并发

当多个用户同时更新同一数据的时候,由于更新可能导致数据的不一致性,使得程序的业务数据发生错误,这种情况可以称之为并发。在ADO .NET中,并发的处理可以通过三种方式来控制:保守式并发控制、开发式并发控制以及最后更新生效方式。 保守式并发控制:数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕之后,用户才能取出该数据进行...

Oracle 删除数据后释放数据文件所占磁盘空间

. . . . . 测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小。经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办法如下: 概念: 表空间的相关知识请见这里,详细的介绍了 Oracle 数据库的存储结构。 高水位:High Water Mark (HW...

基于Spark环境对比Python和Scala语言利弊

在数据挖掘中,Python和Scala语言都是极受欢迎的,本文总结两种语言在Spark环境各自特点。 本文翻译自  https://www.dezyre.com/article/Scala-vs-Python-for-apache-Spark/213 1.性能对比由于Scala是基于JVM的数据分析和处理,Scala比Python快10倍。当编写Pytho...

Apache seaTunnel 数据集成平台

为什么我们需要 seatunnel Databricks 开源的 Apache Spark 对于分布式数据处理来说是一个伟大的进步。我们在使用 Spark 时发现了很多可圈可点之处,同时我们也发现了我们的机会 —— 通过我们的努力让Spark的使用更简单,更高效,并将业界和我们使用Spark的优质经验固化到seatunnel这个产品中,明显减少学习成本,加...

如何设计实时数据平台(技术篇)

  敏捷之歌 我抽数故我存在 | DBus 人人玩转流处理 | Wormhole 就当吾是数据库 | Moonbox 颜值最后十公里 | Davinci 导读:实时数据平台(RTDP,Real-time Data Platform)是一个重要且常见的大数据基础设施平台。在上篇(设计篇)中,我们从现代数仓架构角度和典型数据处理角度介绍了RTDP,并探讨了...

SqlServer 数据库/数据表 拆分(分布式)【转】

通过某种特定的条件,将存放在同一个数据库中的数据分散存放到多个数据库上,实现分布存储,通过路由规则路由访问特定的数据库,这样一来每次访问面对的就不是单台服务器了,而是N台服务器,这样就可以降低单台机器的负载压力。提示:sqlserver 2005版本之后,可以友好的支持“表分区”。 垂直(纵向)拆分:是指按功能模块拆分,比如分为订单库、商品库、用户库......