使用 Laravel Generator 快速为 Laravel 应用生成CRUD、API、测试用例代码 —— 使用篇

API生成器

要生成API,我们可以使用如下命令

php artisan infyom:api $MODEL_NAME$

其中$MODEL_NAME$需要替换成你的模型名称,例如:

php artisan infyom:api Post

然后需要在命令行手动输入模型对应表的字段:

使用Laravel Generator生成API相关代码

这里我们暂且输入title和content字段(id和时间戳会自动生成无需在这里添加),完成后输入exit退出,然后就会生成对应模型类、控制器类、请求类及测试用例:

使用Laravel Generator生成API相关代码

如果想要在数据库中创建表,可以输入y。

脚手架生成器

要生成脚手架,可以使用如下命令:

php artisan infyom:scaffold $MODEL_NAME$

其中$MODEL_NAME$需要被替换成模型名称,例如:

php artisan infyom:scaffold Post

输入你想要的字段,并附上数据库类型,html输入类型,Laravel验证规则以及这个字段是否可以被搜索等信息,完成后,输入“exit”退出:

使用Laravel Generator生成脚手架代码

使用Laravel Generator生成脚手架代码

该命名会生成视图文件。再也不用写那些重复性的代码了,瞬间感觉生产力被大大解放有木有!

自定义选项

此外,生成脚手架支持很多可选项:

软删除

如果要让生成的模型类支持软删除,可以配置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

学院君

学院君 has written 548 articles

资深PHP工程师,Laravel学院院长