Laravel6.0 最新開源後臺系統,整合了大部分常用功能,後臺模板 Layui

空氣發表於2019-11-06

KongQi Laravel admin

整合了,圖片上傳,多圖上傳,批量Excel匯入,批量插入,修改,新增,搜尋,許可權管理RBAC,驗證碼,外掛一個綜合完善後臺,助你開發快人一步。
准許協議MIT,允許你修改和包裝,但需要註明版權。

關於後臺管理系統

利用laravel框架,打造一款快速開發後臺操作,內建了RBAC許可權管理,整合了列表api,批量刪除,批量增加,Excel批量匯入,排序,列表編輯,圖片上傳,圖片多圖上傳,編輯器,外掛安裝等。

  • 介面採用Layui,簡單方便,上手容易
  • 對經常用到的一些功能,進行了封裝和改造,讓程式碼寫的更少。
  • 拿到就能快速開發,無需繁瑣的搭建一個後臺管理系統。
  • 程式碼極少就能完成增刪改查。
  • 搜尋功能進行了改變,減少一大堆的判斷
  • blade檢視自動找到檔案模板,免去寫很多的檢視定位檔案,全部自動化。

系統說明

  • PHP7.2以上版本
  • Laravel 6.0,低於這個版本也可以,但不能低於5.2版本

最新學習社群-黑白課堂

http://www.heibaiketang.com,也是最新一款BBS論壇外掛

系統截圖

系統演示
系統演示
系統演示
系統演示
系統演示
系統演示
系統演示
系統演示
系統演示
系統演示
系統演示

安裝

第一步:拉取程式碼

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

相關文章