shibuyakosuke/laravel-adminlte-crud-generator

此包已 废弃 并不再维护。未建议替代包。

laravel-adminlte 的 Laravel CRUD 生成器

dev-master 2019-11-29 10:14 UTC

This package is auto-updated.

Last update: 2020-08-29 12:06:59 UTC


README

laravel-adminlte 的 CRUD 生成器 laravel-adminlte

特性

  • 从 MySQL 数据库的列注释生成 语言文件
  • 从表和列生成 Blade 视图文件
  • 从表和列生成 模型文件
    • 除了用户以外的所有模型。
  • 从表和列生成 控制器文件
  • 从表和列生成 表单请求文件
  • 从表和列生成 视图组合文件
  • 添加路由到 routes/web.php

安装 & 设置

安装 Laravel

composer create-project --prefer-dist laravel/laravel project_name "6.*"

安装 laravel-adminlte-crud-generator

composer require shibuyakosuke/laravel-adminlte-crud-generator

设置 Laravel

如果您使用日语,请编辑 app/config/app.php

/**
 * app/config/app.php
 */
-    'locale' => 'en',
+    'locale' => 'ja',
/**
 * app/config/app.php
 */
    'providers' => [
+        Collective\Html\HtmlServiceProvider::class, // add
+        Watson\BootstrapForm\BootstrapFormServiceProvider::class, // add
+        Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, // add
    ],
/**
 * app/config/app.php
 */
    'aliases' => [
+        'Form' => Collective\Html\FormFacade::class, // add
+        'Html' => Collective\Html\HtmlFacade::class, // add
+        'BootForm' => Watson\BootstrapForm\Facades\BootstrapForm::class, // add
    ],

设置 laravel-adminlte

php artisan adminlte:install

更多信息

设置 laravel-adminlte-crud

php artisan vendor:publish --provider="Shibuyakosuke\LaravelCrudGenerator\Providers\ResourceServiceProvider"

输出以下文件。

  • /configs/adminlte_crud.php
  • /app/Observers/*
  • /app/Traits/*

编辑文件

将 '(new AdminlteMenu($events))->build();' 添加到 'AppServiceProvider::boot()', 以显示 adminlte 侧边栏菜单。

<?php

/**
 * app/Providers/AppServiceProvider
 */

namespace App\Providers;

use Illuminate\Events\Dispatcher;
use Illuminate\Support\ServiceProvider;
use Shibuyakosuke\LaravelCrudGenerator\AdminlteMenu\AdminlteMenu;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(Dispatcher $events)
    {
        (new AdminlteMenu($events))->build(); // Add for menu of laravel-adminlte
    }
}

显示面包屑

/**
 * resources/views/vendor/adminlte/page.blade.php
 */

<section class="content-header">
    @yield('content_header')

    {{ Breadcrumbs::render(Request::route()->getName(), Request::route()->parameters()) }} // Add
</section>

配置

/configs/adminlte_crud.php

<?php

return [
    'default_model_path' => 'app/Models/', // Output models to this path.
    'textarea' => 500, // If the max length is above this value, output textarea otherwise input element.
    'required_label' => '*', // If the field is not allowed null, output form element with this text.
    'required_label_position' => 'after' // or before
];

用法

运行迁移

如果您有如下注释的迁移文件,则生成 CRUD 文件。

注意

外键设置有助于为模型生成 关系

class CreateUsersTable extends Migration
{
    use \App\Traits\DatabaseCommonColumns; // add

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id')->comment('ID');
            $table->unsignedBigInteger('role_id')->comment('ロールID');
            $table->unsignedBigInteger('company_id')->comment('会社ID');
            $table->string('name')->comment('氏名');
            $table->string('email')->unique()->comment('メールアドレス');
            $table->timestamp('email_verified_at')->nullable()->comment('メール認証日時');
            $table->string('password')->comment('パスワード');
            $table->rememberToken()->comment('リメンバートークン');

            $this->addCommonColumns($table); // add

            // foreign keys setting helps generating relations for models. 
            $table->foreign('role_id')->references('id')->on('roles');
            $table->foreign('company_id')->references('id')->on('companies');
        });
        $this->comment('users', 'ユーザー'); // add table comment
    }
}
php artisan migrate

生成 CRUD

php artisan crud:generate

然后您应该将此行添加到 'configs/app.php'。

/*
 * Package Service Providers...
 */
\App\Providers\ViewServiceProvider::class,

选项

覆盖文件

php artisan crud:generate --force

指定表名

使用逗号分隔多个表

php artisan crud:generate --table=users,companies

输出文件

project ┌ app ┬ Http ┬ Controllers ─ ExampleController.php
        │     │      │
        │     │      ├ Requests ─ ExampleFormRequest.php
        │     │      │
        │     │      └ View ─ Composers ─ ExampleComposer.php
        │     │
        │     └ (Models) ─ Example.php
        │
        └ resources ┬ lang ── (ja) ─┬ tables.php
                    │               └ columns.php
                    │
                    └ views ─ examples ┬ index.blade.php
                                       ├ show.blade.php
                                       ├ create.blade.php
                                       └ edit.blade.php

并自动附加到 route/web.php

Route::resource('/users', 'UserController');

感谢

@jeroennoten

@dwightwatson