PHPackages                             abnermouke/console-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. abnermouke/console-builder

ActiveLibrary[CLI &amp; Console](/categories/cli)

abnermouke/console-builder
==========================

ConsoleBuilder是一款优秀的管理后台/控制面板构建工具包，一键安装即可搭建一套完整后台模版，内含一套完整表格、表单构建器，开发高效，体验优良！

1.2.0(3y ago)0271[1 PRs](https://github.com/abnermouke/console-builder/pulls)MITJavaScript

Since Apr 6Pushed 2y ago1 watchersCompare

[ Source](https://github.com/abnermouke/console-builder)[ Packagist](https://packagist.org/packages/abnermouke/console-builder)[ RSS](/packages/abnermouke-console-builder/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (6)Versions (5)Used By (0)

console-builder - 一款优秀的管理后台/控制面板构建工具包
=====================================

[](#console-builder---一款优秀的管理后台控制面板构建工具包)

Power By Abnermouke

此工具包由 Abnermouke  开发并维护。

---

最后更新时间：2022年08月05日，停止更新，请使用全新构建方案：[abnermouke/pros](https://github.com/abnermouke/pros)

---

Requirement - 环境要求
------------------

[](#requirement---环境要求)

1. PHP &gt;= 7.2（建议安装7.4）
2. **[Composer](https://getcomposer.org/)**
3. abnermouke/easy-builder
4. Laravel Framework 6+

Installation - 安装方法
-------------------

[](#installation---安装方法)

```
$ composer require "abnermouke/console-builder"
```

Configuration - 配置
------------------

[](#configuration---配置)

- 一切就绪之前，请先确保 "abnermouke/easy-builder" 配置已就位

点击 [abnermouke/easy-builder](https://github.com/abnermouke/easy-builder) 查看配置方法

- 在`config/app.php`的`providers`注册服务提供者

```
Abnermouke\ConsoleBuilder\ConsoleBuilderServiceProvider::class,
```

- 如果你想只在非`production`的模式中使用构建器功能，可在`AppServiceProvider`中进行`register()`配置

```
public function register()
{
  if ($this->app->environment() !== 'production') {
      $this->app->register(\Abnermouke\ConsoleBuilder\ConsoleBuilderServiceProvider::class);
  }
  // ...
}
```

- 构建工具提供一配置文件帮助开发者自行配置自己的构建配置，导出命令：

```
php artisan vendor:publish --provider="Abnermouke\ConsoleBuilder\ConsoleBuilderServiceProvider"
```

- 设置路由

```
protected $middlewareGroups = [

       // 其他路由配置

        'abnermouke.console' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'abnermouke.console.auth' => [
            \App\Http\Middleware\Abnermouke\ConsoleBuilder\ConsoleBaseMiddleware::class
        ],
    ];
```

- 注册路由
- 移除 app/Http/Kernel.php 默认中间件：\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull::class,

Laravel 6 与 Laravel 7 中配置路由服务 app/Providers/RouteServiceProvider.php

```
  public function map()
    {

        // 其他路由配置

        $this->mapAbnermoukeConsoleRoutes();
    }

    /**
     * Define the "abnermouke/console" routes for the application.
     *
     * These routes are typically stateless.
     *
     * @return void
     */
    protected function mapAbnermoukeConsoleRoutes()
    {
        Route::middleware('abnermouke.console')
            ->namespace('App\Http\Controllers\Abnermouke\Console')
            ->group(base_path('routes/abnermouke/console.php'));
    }

```

Laravel 8 中配置路由服务 app/Providers/RouteServiceProvider.php

```
public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {

         // 其他路由服务注册

        Route::middleware('abnermouke.console')
            ->namespace('App\Http\Controllers\Abnermouke\Console')
            ->group(base_path('routes/abnermouke/console.php'));
    });
}

```

增加Csrf例外 app/Http/Middleware/VerifyCsrfToken.php （处理ueditor或其他插件文件上传无法加入csrf验证）

```
    protected $except = [

        //其他例外

        'abnermouke/console/uploader/*'
    ];

```

- 添加辅助函数自动加载至 composer.json

```
     "autoload": {

       //

        "files": [

            //其他加载文件

            "app/Helpers/console_builder.php"
        ]
    },
```

- 执行 Composer Autoload 以生效辅助函数

```
composer dump-autoload
```

### Usage 使用方法

[](#usage-使用方法)

执行命令：

```
php artisan builder:console
```

- 构建表格方法

```
    ($builder = (new \Abnermouke\ConsoleBuilder\Builders\Table\ConsoleTableBuilder('__LIST_QUERY_URL__')))
        ->addButton($builder->buildBotton()->text('按钮名称')->url('跳转链接', '请求方式', true)->confirm_before_query('跳转前确认提示')->theme('primary')->id_suffix('自定义ID')->icon('自定义图标'))
        ->addButton($builder->buildBotton()->text('按钮名称')->ajax('Ajax跳转链接', '请求方式'))
        ->setCheckbox('选中时使用字段值', ['自定义的按钮ID'])
        ->setFields(function () use ($builder) {
            return ($fieldBuilder = new \Abnermouke\ConsoleBuilder\Builders\Table\Tools\TableFieldsBuilder())
                ->addField($fieldBuilder->buildTexts('字段名', '显示名称')-> ···)      //双行文本字段
                ->addField($fieldBuilder->buildAvatar('字段名', '显示名称')-> ···)     //多头像显示字段
                ->addField($fieldBuilder->buildDate('字段名', '显示名称')-> ···)       //日期显示字段
                ->addField($fieldBuilder->buildOption('字段名', '显示名称')-> ···)     //选项显示字段
                ->addField($fieldBuilder->buildProject('字段名', '显示名称')-> ···)    //详细介绍显示字段
                ->addField($fieldBuilder->buildRating('字段名', '显示名称')-> ···)     //评分显示字段
                ->addField($fieldBuilder->buildString('字段名', '显示名称')-> ···)     //字符串显示字段
        })
        ->addFilter($builder->filterAsInput()-> ···)            //添加input筛选项
        ->addFilter($builder->filterAsGroup()-> ···)            //添加分组选择筛选项
        ->addFilter($builder->filterAsSelect()-> ···)           //添加选择框筛选想
        ->addFilter($builder->filterAsSwitch()-> ···)           //添加switch形式筛选想
        ->addAction($builder->buildAction()->ajax(route('xxx', ['id' => '__ID__']))-> ···)      //添加数据操作（系统将自动转换当前栏字段为id的值替换__ID__，可设置多个替换字段）
        ->render();     //实例化构建器内容（返回html）
```

- 构建表单方法

```
    ($builder = (new \Abnermouke\ConsoleBuilder\Builders\Form\ConsoleFormBuilder()))
        ->setTitle('标题', '描述')
        ->submit($builder->buildButton()-> ···)     //添加提交按钮（必须存在）
        ->back($builder->buildButton()-> ···)       //添加返回按钮
        ->setItems(function () {
            return ($formItemBuilder = (new \Abnermouke\ConsoleBuilder\Builders\Form\Tools\FormItemsBuilder()))
            ->addItem($formItemBuilder->buildInput('字段名', '显示名称')-> ···)        //input文本框
            ->addItem($formItemBuilder->buildCheckbox('字段名', '显示名称')-> ···)     //checkbox多选
            ->addItem($formItemBuilder->buildEditor('字段名', '显示名称')-> ···)       //富文本编辑器，ueditor、ck_Editor
            ->addItem($formItemBuilder->buildFiles('字段名', '显示名称')-> ···)        //文件上传（可批量上传）
            ->addItem($formItemBuilder->buildImage('字段名', '显示名称')-> ···)        //单图上传
            ->addItem($formItemBuilder->buildLinkage('字段名', '显示名称', 'JSON文件地址')-> ···)      ///N级联动
            ->addItem($formItemBuilder->buildRadio('字段名', '显示名称')->trigger('选中值', ['选中时显示字段', '未选中时不会显示'])-> ···)        //单选框
            ->addItem($formItemBuilder->buildSelect('字段名', '显示名称')-> ···)       //选择框
            ->addItem($formItemBuilder->buildTags('字段名', '显示名称')-> ···)         //标签
            ->addItem($formItemBuilder->buildTextarea('字段名', '显示名称')-> ···)     //文本域
            ->addItem($formItemBuilder->buildValues('字段名', '显示名称')-> ···)       //自定义结构类型（常用于答题、商品属性等）
            ->addItem($formItemBuilder->buildSwitch('字段名', '显示名称')->on('开启时使用值', ['开启时显示字段', 'switch关闭时不会显示'])->off('关闭时使用值', ['关闭时显示字段', 'switch开启时不会显示'])-> ···);      //switch开关
        })
->addStructure($builder->buildStructure()->addFiled('字段名', '显示栏(1-12)')->addFiled(···)->···)        //每一个结构块中可添加多个字段并自定义显示宽度比例（基于bootstrap col）
->bindTable('构建表格ID', '动态modalID')      //表格构建器Action或Button为form类型时使用
->render();     //实例化构建器内容（返回html）
```

表单构建器可对switch、radio类型数据进行触发处理，详看 -&gt; triiger()

- 系统提供多项自定义属性操作，-&gt; 后可查看构建器提供的多个方法实例，花点时间了解，就能完全掌握他。

##### 更新记录

[](#更新记录)

2022.04.26 - 主要增加与构建器使用功能

- 新增对表格构建器Action的筛选操作，可指定条件显示对应按钮
- 新增表格构建器子列表获取功能，仅需获取列表时设置 `setSubTable` 即可，可无限极获取下级，也可定层级获取，常用于分类、商品-商品规格、订单-子订单、邀请关系、地区结构等功能
- 修复已知问题与优化逻辑

2022.06.18 - 修复已知问题

- 更改短信发送机制，优化发送逻辑提升稳定性
- 修复表单构建器前后端默认值配置存在的问题
- 修复中文文件名文件上传可能无法访问的问题

2022.08.05 - 修复已知问题并官宣停止维护

- 修复文件上传文件名问题
- 停止更新

License
-------

[](#license)

MIT

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~39 days

Total

4

Last Release

1430d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16248486?v=4)[Abnermouke](/maintainers/abnermouke)[@abnermouke](https://github.com/abnermouke)

---

Top Contributors

[![abnermouke](https://avatars.githubusercontent.com/u/16248486?v=4)](https://github.com/abnermouke "abnermouke (20 commits)")

### Embed Badge

![Health badge](/badges/abnermouke-console-builder/health.svg)

```
[![Health](https://phpackages.com/badges/abnermouke-console-builder/health.svg)](https://phpackages.com/packages/abnermouke-console-builder)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[bagisto/bagisto

Bagisto Laravel E-Commerce

27.6k172.1k9](/packages/bagisto-bagisto)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k20](/packages/fleetbase-core-api)[typicms/base

A modular multilingual CMS built with Laravel, enabling developers to manage structured content like pages, news, events, and more.

1.6k20.4k](/packages/typicms-base)[october/rain

October Rain Library

1601.7M83](/packages/october-rain)[code16/sharp

Laravel Content Management Framework

79164.7k8](/packages/code16-sharp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
