vivify-ideas/admin-panel-generator

根据配置生成管理面板界面。

此软件包的规范仓库似乎已消失,因此已冻结此软件包。

0.0.9 2015-03-15 19:21 UTC

This package is auto-updated.

Last update: 2022-03-23 13:29:12 UTC


README

为您的Laravel 5应用程序根据配置生成管理面板界面。

安装

首先,您需要通过Composer安装此软件包。编辑您的项目composer.json文件,以要求vivify-ideas/admin-panel-generator软件包。

"require": {
  "vivify-ideas/admin-panel-generator": "dev-master"
}

接下来,通过终端更新Composer

composer update

此操作完成后,您需要将服务提供者添加到您的应用程序中。打开config/app.php文件,并向提供者数组添加一个新项。

'VivifyIdeas\AdminPanelGenerator\Providers\AdminPanelGeneratorProvider'

最后一步是运行以下命令以发布软件包依赖项

php artisan vendor:publish

这将创建新的配置文件config/vivifyideas/admin-panel-generator.php,您需要编辑它以配置您的管理面板。现在您已准备好开始配置您的管理面板。

配置

在发布供应商资产后,您将获得新的配置文件config/vivifyideas/admin-panel-generator.php

配置文件看起来像这样

return [
    'prefix' => 'admin',

    'authMiddleware' => 'auth',

    'tables' => [],

    'rowsPerPage' => 15,

    'columns' => [],

    'filters' => [],

    'forms' => [],

    'validationRules' => []
];

让我们解释每个部分。

prefix

这代表您管理面板的URL前缀。例如,如果您将'admin'设置为您的prefix,则您的管理URL将类似于以下这样 https://:8000/admin

注意: 设置此选项时不要带 / 前缀

authMiddleware

此中间件将用于授权管理用户。默认情况下设置为Laravel默认的auth中间件。您可以使用自己的中间件。

tables

表示您希望通过管理面板管理的表名列表。示例

'tables' => [ 'users', 'articles', 'tags' ]

rowsPerPage

在这里,您可以设置在列表视图中要显示的每页行数。默认设置为15

columns

定义您要为每个表显示的列。示例

'columns' => [
    'users' => [ 'id', 'name', 'email', 'created_at' ],
    'articles' => [ 'title', 'description' ]
]

filters

对于每个“列表视图”,您可以设置筛选器。筛选器用于轻松筛选列表视图。示例

'filters' => [
    'users' => [
        'email' => [
            'label' => 'Email',
            'type' => 'text',
            'compare' => 'LIKE'
        ],
        'id' => [
            'label' => 'User #',
            'type' => 'number'
        ]
    ]
]

首先,您定义您要为哪个表设置筛选器。对于每个筛选器,您可以设置3个参数

  • label [必需] 某一列的标签
  • type [必需] [ text | password | email | url | textarea | number | checkbox | radio ]
  • compare [可选] 如果您不设置此参数,则使用 =

表单

表单配置用于创建和编辑某些模型。它代表你希望允许管理员用户在创建/编辑某些模型时输入的字段列表。示例

'forms' => [
    'articles' => [
        'title',
        'category' => [
            'label' => 'Takson',
            'type' => 'text'
        ],
        'belongsTo' => [
            'users' => [
                'label' => 'User',
                'column' => 'user_id',
                'foreignLabel' => 'name',
                'nullable' => true // this is optional param
            ]
        ],
        'hasMany' => [
            'videos' => [
                'label' => 'Videos',
                'column' => 'article_id',
                'foreignLabel' => 'title'
            ]
        ],
        'belongsToMany' => [
            'tags' => [
                'label' => 'Tags',
                'table' => 'article_tag',
                'column' => 'article_id',
                'foreignLabel' => 'tag_id',
                'index' => 'id'
            ]
        ]
    ]
]
  • belongsTo 参数将生成 "下拉框"
  • hasMany 将生成 "多选框"。在上面的示例中,我们有一个 videos 表,其中包含 article_id 列(表示外键)。
  • belongsToMany 也会生成一个 "多选框"。在上面的示例中,我们有一个 tags 表,通过一个枢纽表(article_tag)与 articles 表相关联。index 是主键,它允许我们从 tags 表中获取记录。

验证规则

在这里,你需要为每个表设置验证规则(Laravel 验证规则)。当管理员用户想要创建或编辑某些实体时,将会调用这些规则。示例

'validationRules' => [
    'articles' => [
        'title' => 'required|min:10',
        'text' => 'required'
    ]
]

截图

// TODO

贡献

// TODO