rtconnect/crud-generator

Laravel 5 CRUD 生成器

v2.0.7 2017-08-31 11:37 UTC

README

Build Status Total Downloads Latest Stable Version License

要求

Laravel >=5.1
PHP >= 5.5.9

安装

打开您的终端(CLI),转到 Laravel 项目的根目录,然后按照以下步骤操作。

对于 Laravel >= 5.5,您需要遵循以下步骤

  1. 运行

    composer require appzcoder/crud-generator --dev
    composer require laravelcollective/html
    
  2. 发布此包的供应商文件。

    php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
    

对于 Laravel < 5.5,您需要遵循以下步骤

  1. 运行

    composer require appzcoder/crud-generator --dev
    
  2. 由于此包仅用于本地开发,请在 app/Providers/AppServiceProvider.php 中添加提供者。

    public function register()
    {
        if ($this->app->environment() == 'local') {
            $this->app->register('Appzcoder\CrudGenerator\CrudGeneratorServiceProvider');
        }
    }
  3. 如果您尚未安装,请安装 laravelcollective/html 辅助包。

    • 运行
    composer require laravelcollective/html
    
    • 将服务提供者和别名添加到 config/app.php
    'providers' => [
        ...
    
        Collective\Html\HtmlServiceProvider::class,
    ],
    
    'aliases' => [
        ...
    
        'Form' => Collective\Html\FormFacade::class,
        'HTML' => Collective\Html\HtmlFacade::class,
    ],
  4. 运行 composer dump-autoload

  5. 发布此包的供应商文件。

    php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
    

注意:您应该已经为此操作配置了数据库。

命令

CRUD 命令

php artisan crud:generate Posts --fields="title#string; content#text; category#select#options=technology,tips,health" --view-path=admin --controller-namespace=Admin --route-group=admin

从 JSON 文件中获取 CRUD 字段

{
    "fields": [
        {
            "name": "title",
            "type": "string"
        },
        {
            "name": "content",
            "type": "text"
        },
        {
            "name": "category",
            "type": "select",
            "options": ["technology", "tips", "health"]
        },
        {
            "name": "user_id",
            "type": "integer#unsigned"
        }
    ],
    "foreign_keys": [
        {
            "column": "user_id",
            "references": "id",
            "on": "users",
            "onDelete": "cascade"
        }
    ],
    "relationships": [
        {
            "name": "user",
            "type": "belongsTo",
            "class": "App\\User"
        }
    ],
    "validations": [
        {
            "field": "title",
            "rules": "required|max:10"
        }
    ]
}
php artisan crud:generate Posts --fields_from_file="/path/to/fields.json" --view-path=admin --controller-namespace=Admin --route-group=admin

选项

其他命令(可选)

对于控制器

php artisan crud:controller PostsController --crud-name=posts --model-name=Post --view-path="directory" --route-group=admin

控制器的选项

对于模型

php artisan crud:model Post --fillable="['title', 'body']"

对于迁移

php artisan crud:migration posts --schema="title#string; body#text"

对于视图

php artisan crud:view posts --fields="title#string; body#text" --view-path="directory" --route-group=admin

默认情况下,生成器会尝试将 CRUD 路由添加到您的 Route 文件。如果您不想添加路由,可以使用此选项 --route=no

创建所有资源后,运行迁移命令。 如有必要,包括您的 CRUD 路由。

php artisan migrate

如果您选择不自动添加 CRUD 路由(见上文),则需要手动包含路由。

Route::resource('posts', 'PostsController');

支持的字段类型

以下字段支持迁移和视图表单

表单字段类型

  • text
  • textarea
  • password
  • email
  • number
  • date
  • datetime
  • time
  • radio
  • select
  • file

迁移字段类型

  • string
  • char
  • varchar
  • date
  • datetime
  • time
  • timestamp
  • text
  • mediumtext
  • longtext
  • json
  • jsonb
  • binary
  • integer
  • bigint
  • mediumint
  • tinyint
  • smallint
  • boolean
  • decimal
  • double
  • float
  • enum

自定义生成器占位符模板

您可以根据需要自定义生成器的占位符文件/模板。

  1. 确保您已发布包的资产。

    php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
    
  2. config/crudgenerator.php 上启用 custom_template 支持

    'custom_template' => true,
    
  3. resources/crud-generator/ 目录中,您可以修改或自定义占位符文件。

  4. config/crudgenerator.php 上,您可以添加新的占位符并选择要传递的值。

屏幕录制

Screencast

如果您仍在寻找更简单的方法,请尝试此 管理面板

作者

Sohel Amin 📧 雇用我