rtconnect / crud-generator
Laravel 5 CRUD 生成器
v2.0.7
2017-08-31 11:37 UTC
Requires
- php: >=5.5.9
- illuminate/support: ^5.1
Requires (Dev)
- mockery/mockery: ^0.9.6
- orchestra/testbench: ^3.3
- phpunit/phpunit: ^5.7
README
要求
Laravel >=5.1
PHP >= 5.5.9
安装
打开您的终端(CLI),转到 Laravel 项目的根目录,然后按照以下步骤操作。
对于 Laravel >= 5.5,您需要遵循以下步骤
-
运行
composer require appzcoder/crud-generator --dev composer require laravelcollective/html
-
发布此包的供应商文件。
php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
对于 Laravel < 5.5,您需要遵循以下步骤
-
运行
composer require appzcoder/crud-generator --dev
-
由于此包仅用于本地开发,请在 app/Providers/AppServiceProvider.php 中添加提供者。
public function register() { if ($this->app->environment() == 'local') { $this->app->register('Appzcoder\CrudGenerator\CrudGeneratorServiceProvider'); } }
-
如果您尚未安装,请安装 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, ],
-
运行
composer dump-autoload
-
发布此包的供应商文件。
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
- 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
自定义生成器占位符模板
您可以根据需要自定义生成器的占位符文件/模板。
-
确保您已发布包的资产。
php artisan vendor:publish --provider="Appzcoder\CrudGenerator\CrudGeneratorServiceProvider"
-
在 config/crudgenerator.php 上启用 custom_template 支持
'custom_template' => true,
-
从 resources/crud-generator/ 目录中,您可以修改或自定义占位符文件。
-
在 config/crudgenerator.php 上,您可以添加新的占位符并选择要传递的值。