Laravel6.0 最新开源后台系统,集成了大部分常用功能,后台模板 Layui

版权说明

这里用了Layui admin ui ,我已购买了正版,现在我这里说明下。如果你们需要,请购买正版,去官方购买下载。,避免不必要的麻烦,如果未来有时间,将全部改成bootstrap 模板,这个不确定具体时间,因为太忙,没时间。

即将增加bootstrap 4 + Layui 库版本

这样大家方便去商业,不必再付费


声明

本系统属于个人开源给大家学习,没有什么高低之分,如果你们要是觉得这写的水平低,请自觉绕道,本文不合适你花费时间阅读,只供于学习使用,发布本文章,没有建议大家一定要用,只是个人的一个分享,经此而已.。

KongQi Laravel admin

集成了,图片上传,多图上传,批量Excel导入,批量插入,修改,添加,搜索,权限管理RBAC,验证码,插件一个综合完善后台,助你开发快人一步。
准许协议MIT,允许你修改和包装,但需要注明版权。

关于后台管理系统

利用laravel框架,打造一款快速开发后台操作,内置了RBAC权限管理,集成了列表api,批量删除,批量增加,Excel批量导入,排序,列表编辑,图片上传,图片多图上传,编辑器,插件安装等。

  • 界面采用Layui,简单方便,上手容易
  • 对经常用到的一些功能,进行了封装和改造,让代码写的更少。
  • 拿到就能快速开发,无需繁琐的搭建一个后台管理系统。
  • 代码极少就能完成增删改查。
  • 搜索功能进行了改变,减少一大堆的判断
  • blade视图自动找到文件模板,免去写很多的视图定位文件,全部自动化。

系统说明

  • PHP7.2以上版本
  • Laravel 6.0,低于这个版本也可以,但不能低于5.2版本

最新学习社区-黑白课堂

http://www.heibaiketang.com

系统截图

系统演示
系统演示
系统演示
系统演示
系统演示
系统演示
系统演示
系统演示
系统演示
系统演示
系统演示

安装

第一步:拉取代码

git clone  https://github.com/kong-qi/kongqi_laravel_admin.git

第二步:安装框架依赖

composer install

第三步:创建一个数据库,utf8mb4字符集
第四步:本地创建网站应用,绑定到网站目录/public下
第五步:重写
nginx 重写

location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}

apache 重写,默认public已经有了,可忽略

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

第六步拷贝您的.env,或者新建一个,内容如下

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:Fv0e0XTllfQQSWXfHbxd/lrqLlH9FCt41hRNLUAEpRo=
APP_DEBUG=1
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=a
DB_USERNAME=root
DB_PASSWORD=123456
DB_PREFIX=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=6379
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

LANG=zh-CN
KONGQI_SERVER=eyJob3N0Ijoid3d3LjIwMTlsdi5jb20iLCJpcCI6IjEyNy4wLjAuMSIsInBvcnQiOiI4MCJ9
DEBUGBAR_ENABLED=false

第七步:打开你的网站/admin/即可,自动判断进行安装

http://www.xx.com/admin

在线安装在第三步的时候,如果出现没有提示,请再次输入即可。

安装完成

插件库地址

http://fuwu.kongqikeji.com/

无插件版本,精简版本

https://github.com/kong-qi/kongqi_laravel_... ,其他都一样去除了插件加载

文件说明

除了本身是laravel框架的文件,就不说明了。自行查阅文档

app/Plugin 插件安装的模块目录,

app/Plugin/AdminBaseController.php 插件后台继承基本控制器
app/Plugin/AdminCurlController.php 插件后台继承增删改查控制器
app/Plugin/FrontBaseController.php 插件前台基本控制器
app/Plugin/PluginController.php 插件基本控制器

如果存在插件了,格式会如下,插件结构

app/Plugin/Vote/
    app/Plugin/Vote/Admin/ 后台控制器存放目录
    app/Plugin/Vote/adminRoute.php 后台路由
    app/Plugin/Vote/config.php 插件安装配置文件,固定格式
    app/Plugin/Vote/Front/ 前台控制器存放目录
    app/Plugin/Vote/frontRoute.php 前台路由文件
    app/Plugin/Vote/helper.php 帮助函数文件
    app/Plugin/Vote/Kernel.php 自定义中间件配置文件
    app/Plugin/Vote/Middleware/ 中间件存放目录
    app/Plugin/Vote/Migrations/ 安装数据库相关文件目录
    app/Plugin/Vote/Models/ 插件模型存放目录

Services目录

app/Services/DateServices.php 日期封装类
app/Services/SearchServices.php 搜索封装类
app/Services//WeiXinServices.php 微信相关封装类

TraitClass 目录trait类,方便多次使用

app/TraitClass/ApiTrait.php 接口输出格式trait类
app/TraitClass/BladeTrait.php 视图输出格式trait类
app/TraitClass/ModelCurlTrait.php 增删改查接口输出格式trait类
app/TraitClass/QueryWhereTrait.php 搜索查询的trait类
app/TraitClass/RouteTrait.php 路由信息的trait类
app/TraitClass/SearchScopeTrait.php 搜索范围的trait类
app/TraitClass/TreeTrait.php 树形 trait类

ExtendClass 目录

app/ExtendClass/AnyUpload.php 任意上传类
app/ExtendClass/UploadFile.php 上传配置和初始化

Facades 门面定义的类

app/Facades/AnyUpload.php
app/Facades/PhpTree.php

Providers 提供者

app/Providers/BladeServiceProvider.php 自定义blade模板指令

静态文件存储

public/static/admin 后台模板文件目录
public/static/install 安装样式目录
public/static/js 公用的JS文件目录
public/static/layui 框架目录
public/static/themify-icons 字体目录

插件静态目录

public/plugin
例如Vote这个插件,那么对应
public/plugin/vote

开发增删改查

生成一个控制器文件,自己创建一个也可以,

php artisan make:controller Admin\TextController

继承基本控制器

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

class TextController extends BaseDefaultController
{
    //
}

设置绑定对应要操作模型类

# 例如我这里操作管理员

<?php

namespace App\Http\Controllers\Admin;

use App\Models\Admin;
use Illuminate\Http\Request;

class TextController extends BaseDefaultController
{
    //绑定操作的模型
    public function setModel()
    {
        return $this->model=new Admin();
    }

//表单添加需要验证规则
/**
     * 表单验证规则
     * @param string $id 存在的时候表示更新
     * @return array
     */
    public function checkRule($id = '')
    {
        if (!$id) {
            return [

                'password' => 'required',
                'account' => 'required',

            ];
        }
        return [

            'account' => 'required',

        ];

    }

    //如果我们这个字段对应的验证没有翻译到,那么可以编写如下进行对应,这样如果账号没有必填,就会提示账号了
     public function checkRuleField()
        {
            return [

                'password' => '密码',
                'account' => '账号',

            ];
        }

  }  

这样就可以完成基本的简单的增删改查的控制器,当然现在还没完成,需要绑定路由
修改route/admin.php

$resource = [
        'AdminController',
        'AdminRoleController',
        'AdminPermissionController',
        'CategoryController',
        'PluginController'
    ];
    末尾增加刚才TextController
$resource = [
        'AdminController',
        'AdminRoleController',
        'AdminPermissionController',
        'CategoryController',
        'PluginController',
        'TextController'
    ];

路由加完了。那么左侧菜单也需要增加一下config/admin_menu.php,照着里面格式加一个即可。

这样就完成了一个后台的功能了。
这样首页,添加,修改,编辑,都已经全部写好了,具体的功能,查阅文件,都有说明,不一一讲。

经常用到的方法如下

//首页需要输出到模板里面的数据,返回数组
public function indexData()
{
    return ['hello'=>'你好'];//那样前端首页模板,就可以用{{ $hello }}这个变量取值
}
//添加和修改共享数据,返回数组,$show不为空时,表示修改,那么$show就是这个的编辑的实例查询数据
public function createEditData($show = '')
{
    return ['navs'=>[['id'=>'1','name'=>'熊猫'],['id'=>'2','name'=>'老虎']]];//那么在编辑和输出,可以使用变量{{ $nav }}
}
 //如果你需要去掉默认的编辑和删除按钮,就在这里面重写,最后要返回$item
 public function apiJsonItem($item)
 {
     $item->hello='你好';//首页输出字段就会多了个hello
     return $item;
 }
 //如果不需要去除”编辑和删除按钮“,那么就在里面重写列表输出的字段内容。需要返回$item
 public function apiJsonItemExtend($item)
 {
     $item->hello='你好';//首页输出字段就会多了个hello
     return $item;
 }
 //模型这个操作完之后,你还需要做的事情,可以在里面写,例如我更新缓存,更新日志等
     public function afterSave($model, $id = '')
     {
     }
  //创建,更新之前需要干的事情
     protected function beforeSave($model, $id = '')
     {
     }
 //开启事务,如果表单存在字段['begin_db'=>1]表示开启事务,或者是直接修改beginDb,返回1也表示开启,开启事务之后,afterSave就必须返回真才能正确提交
  /**
      * 是否开启事务
      * @return bool 真表示开启
      */
     protected function beginDb($data, $id = '')
     {
         return isset($data['begin_db']) ? $data['begin_db'] : 0;
     }

常用函数

app/Http/Helper.php

//静态资源加载
function ___($path)
{
    return asset('/static/' . $path);
}

/**
 * 插件样式
 * @param $path
 * @return string
 */
function plugin_res($path)
{
    return asset('/plugin/' . $path);
}
其他的自行查阅

路由前缀命名说明

route/admin.php


默认前缀是"admin."
例如管理员
admin.admin.index
> 插件路由命名

admin.plugin.vote.vote.index
admin.plugin.这个是固定,vote是插件名字,后面才是控制器对应的路由名字

> 插件前端命名

plugin.vote.vote.index
plugin.是固定形式前缀。vote是插件名字,后面才是控制器对应的路由名字


### 前端Layui模块位置

\public\static\admin\modules\,所有的模块默认在这里,
引入的时候,都需要先调用index这个模块
layui.use(['index'], function () {
})

> 重点模块我进行了封装

custorm.js 自定义JS内容
treetable.js 进行更改过
layerOpen.js 弹窗模块
uploader.js 上传模块
request.js 请求模块ajax

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 2个月前 自动加精
空气
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 37
Antony

东西还行, 插件太贵

2个月前 评论
空气

@Antony :joy:嗯,是的,毕竟原创,也不想因为几百块出售。市面上好多烂大街的,十几,二十块都有。哈哈 :joy:,但这不是我的风格。

2个月前 评论
北冥

挺好的,不用插件就行了

2个月前 评论
空气

:joy:对呀,不然就自己撸,要尊重别人的辛苦劳动成果。

2个月前 评论

前端要是 Vue 或者 React 就更好了 :smiley:

2个月前 评论
空气

@xiaobei :joy:有机会再来,时间太宝贵。轮子很难造

2个月前 评论

为你点赞,这功能真的不错

2个月前 评论

大家能不能少用layui后台啊. 不管从配色还是其他地方来讲真的是不太好看. bs搭建一个都比这个好很看很多.. 界面上来讲

file
bs 花不了几分钟就可以自定义了

2个月前 评论
justmd5 2个月前
空气

@可乐加冰 这个东西,完全看自己的需要,有人喜欢,有人不喜欢,关键是轮子要小,代码效率要高,整体来说layui的她比较全面,不需要全部靠插件堆积,bs基本上靠插件堆积,个人觉得还是比较费劲。

2个月前 评论

哈哈 主要看自己 随口说说而已. bs也不是基本上靠插件哦

2个月前 评论
Ίκαρος

看了下源码,你的系统使用了付费的LayuiAdmin,而你带着它来当成开源产品来售卖。
已举报。
稍后联系贤心,我得确认下你用的这套LayuiAdmin付费买的,还是说破解版。

2个月前 评论
Ίκαρος

那就不要拿来开源,然后改成 MIT,一句“为了学习”也不能免责。

2个月前 评论
空气

@Ίκαρος 现在我已经购买了。正版了吧

2个月前 评论
空气
  1. 授权 layui 官方任意周边付费产品均可获得我们的 VIP 认证,用户可通过Fly社区的授权帐号下载到产品。
  2. 授权者可将授权后的产品用于任意符合国家法律法规的应用平台,并且不受域名和项目数量限制。
  3. 授权者如果使用 layui 收费产品开发的商业项目(如ERP / CRM / CMS等),需保留我们的源码头注释和出处。
  4. 授权者务必尊重知识产权,严格保证不恶意传播产品源码、不得直接对授权的产品本身进行二次转售或倒卖、不得对授权的产品进行简单包装后声称为自己的产品等。否则我们有权利收回产品授权,并根据事态轻重追究相应法律责任。
  5. 授权 layui 官方的源码类付费产品(如:layim、layuiAdmin等),不支持退款。
  6. 我们有义务为授权者提供有效期内的产品下载、更新和维护,一旦过期,授权者无法享有相应权限。终身授权则不受限制。
  7. layui.com 拥有最终解释权
2个月前 评论
空气

file

2个月前 评论
Ίκαρος

@空气 👍

2个月前 评论
Krisji

说实话 不如 前后端分离 来得好。。

2个月前 评论
可乐加冰 2个月前
Krisji (作者) 2个月前
可乐加冰 2个月前

会员或密码错误

2个月前 评论

登录不进去了,显示密码错误

2个月前 评论
空气

@lupure 改回来了。已增加防止修改

2个月前 评论
空气

@FirstBlood 改回来了。已增加防止修改

2个月前 评论

出现错别字了,更改密码的提示,还有你官网的联系我们

2个月前 评论
空气

@FirstBlood 哪个位置,截图看看先

2个月前 评论

大神群群友友情回复一下

2个月前 评论
ThinkCsly

这个功能是怎么做的啊

file
是layui自带的吗?这个很好啊。 :blush:

2个月前 评论
空气

@ThinkCsly 对的,layui ui的数据表格自带的。

2个月前 评论
ThinkCsly

@空气
文档有吗?我还没找到呢。

2个月前 评论
空气

@ThinkCsly :joy:这个时候靠度娘,打开他们的ui,然后就可以了找到了。数据表格。

2个月前 评论
ThinkCsly

@空气 这个功能叫什么名字呀?可不易截个图给我 :blush: :see_no_evil:

2个月前 评论
ThinkCsly

@空气,找到了,谢谢。 :smiley: :smile:

2个月前 评论

@空气 我安装了下这个后台,理了理轮子的顺序构造等,但是我有一点不是太明白,为什么安装完成后他加载比较慢,你是设置了属性了还是其他什么原因呢?这个还没有读懂,烦请指教

1个月前 评论
空气

@FirstBlood 你说的慢,我不清楚哦,我没觉得什么不妥,而且也没加载什么东西,我觉得速度还可以的。

1个月前 评论

@空气 就是说他在加载表格时,会有一个等待的转圈操作,这个是什么情况呢?我运行着大概3-4s才会出现表格中的数据

1个月前 评论
空气

@FirstBlood F12自己看下就知道了。

1个月前 评论

@空气 那好吧,我回去后运行看下,看是哪堵塞了,应该是一点击侧边栏然后在一秒内出现数据就对了哈

1个月前 评论
空气

@tangtangloveyou 嗯,高手求放过。

1个月前 评论

layui 单页面版,完全就是前后端分离,只是index入口用php去渲染,后面前端的活全部layui接管
样式问题真的不擅长,但是layui 让我可以不有个样式问题就去找前端,节省时间相对样式也不难看

1周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!