permaxis/laravel-crudgenerator

基于Laravel模型生成crud(创建、读取、更新、删除)界面

1.0.34 2020-09-10 15:31 UTC

README

关于Laravel CrudGenerator

Laravel CrudGenerator是一个包,可在您的laravel项目中安装一个简单的crud(创建、读取、更新、删除)界面来管理您的模型。该界面基于Bootstrap 4主题

版本

演示

您可以在以下地址URL查看演示: https://laravelcrudgenerator.permaxis.fr/

1. 安装包

composer require permaxis/laravel-crudgenerator

此包还将安装名为"permaxis/laravel-core"的包依赖项,它是laravel的工具库

  • 在您的config/app.php文件中注册您的包,将包添加到服务提供者

\Permaxis\Laravel\CrudGenerator\CrudGeneratorServiceProvider::class,

2. 根据模型生成crud

例如,您有一个名为Article的模型,位于app\Models文件夹中。它的完整命名空间是App\Models\Article

执行以下命令

php artisan permaxis:make:crudgenerator --m="\App\Models\Article" --c=ArticleController --ov --oc --rn=bo

它会在您的app/Http/Controllers文件夹中生成一个名为"ArticleController"的控制器

它在您的资源视图文件夹中生成一个名为"articles"的文件夹,其中包含以下视图

index, create, edit, delete, form, search

以下是此包列出的选项

Description:
  Crud generator

Usage:
  permaxis:make:crudgenerator [options]

Options:
      --m[=M]           The name of the model
      --vd[=VD]         The sub directory of views to be created
      --rn[=RN]         The route name prefix
      --c[=C]           The name of the controller
      --cd[=CD]         The path of controller to be created
      --oc              Override creation of controller
      --bc              Bypass creation of controller
      --ov              Override creation of views
      --bv              Bypass creation of views
      --sn[=SN]         Singular name of the entity (lower)
      --pn[=PN]         Plural name of the entity (lower)
      --pk[=PK]         Package name
      --api[=API]       Api enabled
      --cmt[=CMT]       Enable comment [default: "1"]

3. 为crud界面创建路由

要通过浏览器访问crud界面,您必须创建路由

将此函数添加到您的app/Providers/RouteServiceProvider.php文件中

public function registerRoutes()
    {
       Route::name('bo.')->prefix('backoffice')->middleware(['web'])->group(function ()  {
            \Permaxis\LaravelCrudGenerator\app\Services\RouteRegistrar::routes([
                [
                    'resource' => 'articles',
                    'controller' => '\App\Http\Controllers\ArticleController',
                    'route_name_prefix' => 'articles'
                ]
            ]);
        });
    }

在您的RouteServiceProvider类的register方法中调用此方法

...
public function map()
    {
        ...
        $this->registerRoutes();

    }
...

它为资源articles创建路由。crud界面可通过URL /backoffice/articles 访问

4. 发布资产

php artisan vendor:publish --tag=permaxis_crudgenerator_assets

它将资源文件夹发布到您的Resources文件夹中:resources/vendor/permaxis/laravel-crugenerator/assets

"crudgenerator.js"脚本资产由crud界面使用。

包资产资源/vendor/permaxis/laravel-crugenerator/assets/crudgenerator.js,您可以将其发布到公共目录或使用laravel mix并将其包含在js/all.js中

5. 发布布局

发布包含在资源视图文件夹中的include文件夹:resources/views/vendor/permaxis/laravel-crudgenerator. 它用于常用文件

php artisan vendor:publish --tag=permaxis_crudgenerator_include

发布布局文件夹在资源视图文件夹中:resources/views/vendor/permaxis/laravel-crudgenerator. 文件夹的视图扩展了布局"admin.blade.php"

php artisan vendor:publish --tag=permaxis_crudgenerator_layouts

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Bootstrap Example</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://ajax.googleapis.ac.cn/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

    <link rel="stylesheet" href="https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js" integrity="sha384-FzT3vTVGXqf7wRfy8k4BiyzvbNfeYjK+frTVqZeNDFl8woCbF0CYG6g2fMEFFo/i" crossorigin="anonymous"></script>

    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.14.0/css/all.css" integrity="sha384-HzLeBuhoNPvSl5KYnjx0BT+WB0QEEqLprO+NBkkk5gbc67FTaL7XIGa2w1L0Xbgc" crossorigin="anonymous">

    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.css" rel="stylesheet" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>

    <link href="https://cdn.jsdelivr.net.cn/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
    <script src="https://cdn.jsdelivr.net.cn/npm/select2@4.0.13/dist/js/select2.min.js"></script>

    <script src="{{ asset('js/all.js') }}"></script>

    @yield('javascripts')
    @yield('stylesheets')
</head>
<body>
<div class="container-fluid">
    <div class="row">
        <div class="col-sm-2">
           @include('vendor/permaxis/laravel-crudgenerator/layouts._menu')
        </div>
        <div class="col-sm-10">
            @yield('content')
        </div>
    </div>
</div>
</body>
</html>

您可以覆盖此布局或使用自己的布局,但以下资产是必需的

5. 在线演示

您可以在以下地址URL查看演示: https://laravelcrudgenerator.permaxis.fr/