使用 Laravel Generator 快速为 Laravel 应用生成CRUD、API、测试用例代码 —— 使用篇
API生成器
要生成API,我们可以使用如下命令:
php artisan infyom:api $MODEL_NAME$
其中$MODEL_NAME$需要替换成你的模型名称,例如:
php artisan infyom:api Post
然后需要在命令行手动输入模型对应表的字段:
这里我们暂且输入title和content字段(id和时间戳会自动生成无需在这里添加),完成后输入exit退出,然后就会生成对应模型类、控制器类、请求类及测试用例:
如果想要在数据库中创建表,可以输入y。
脚手架生成器
要生成脚手架,可以使用如下命令:
php artisan infyom:scaffold $MODEL_NAME$
其中$MODEL_NAME$需要被替换成模型名称,例如:
php artisan infyom:scaffold Post
输入你想要的字段,并附上数据库类型,html输入类型,Laravel验证规则以及这个字段是否可以被搜索等信息,完成后,输入“exit”退出:
该命名会生成视图文件。再也不用写那些重复性的代码了,瞬间感觉生产力被大大解放有木有!
自定义选项
此外,生成脚手架支持很多可选项:软删除
如果要让生成的模型类支持软删除,可以配置config/infyom/laravel_generator.php
,开启options.softDelete => true
。
保存模型schema
生成器还支持保存模型schema到json文件,Schema目录可以在配置文件中配置:path.schema_files => 'folder_path'
。
要实现该功能,运行命令时加上--save
选项即可:
php artisan infyom:scaffold $MODEL_NAME$ --save
从文件中获取字段
保存的schema文件可用于以后的代码生成而不再需要每次都从控制台输入字段。扩展包也为我们提供了一个实例json文件:vendor\infyom\laravel-generator\samples\fields_sample.json
。
要使用schema文件,加上--fieldsFile
选项:
php artisan infyom:scaffold $MODEL_NAME$ --fieldsFile=absolute_file_path_or_path_from_base_directory
自定义表名
你还可以指定要生成的数据表名称:
php artisan infyom:scaffold $MODEL_NAME$ --tableName=custom_table_name
从数据表生成代码
php artisan infyom:scaffold $MODEL_NAME$ --fromTable --tableName=$TABLE_NAME$
自定义主键字段
默认主键是id
,你可以通过--primary
选项指定自定义的主键:
php artisan infyom:scaffold $MODEL_NAME$ --primary=custom_name_id
prefix选项
有时候你不想要生成的文件直接存放在配置的目录下,而是在该目录的子目录下,比如后台相关的存放在admin
子目录下,这样你就可以使用--prefix=admin
选项:
php artisan infyom:scaffold $MODEL_NAME$ --prefix=admin
API&脚手架生成器
API和脚手架可以联合在一起生成:
php artisan infyom:api_scaffold $MODEL_NAME$
附录
下面是完整的字段HTML输入类型列表:
text:htmlType - text email:htmlType - email number:htmlType - number date:htmlType - date file:htmlType - file password:htmlType - password select:htmlType - select:Option 1,Option 2,Option 3 radio:htmlType - radio:Male,Female checkbox:htmlType - checkbox:value textarea:htmlType - textarea
此外,生成器支持逐个生成对应文件命令:
迁移生成器
php artisan infyom:migration $MODEL_NAME$
模型生成器
php artisan infyom:model $MODEL_NAME$
Repository生成器
php artisan infyom:repository $MODEL_NAME$
API控制器生成器
php artisan infyom.api:controller $MODEL_NAME$
API请求生成器
php artisan infyom.api:requests $MODEL_NAME$
测试用例生成器
php artisan infyom.api:tests $MODEL_NAME$
脚手架控制器生成器
php artisan infyom.scaffold:controller $MODEL_NAME$
脚手架请求生成器
php artisan infyom.scaffold:requests $MODEL_NAME$
视图生成器
php artisan infyom.scaffold:views $MODEL_NAME$
以上是基本使用指南,更多详情请参考官网文档:http://labs.infyom.com/laravelgenerator/docs
17 Comments